diff --git a/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp b/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp
index 3b490692e57492841739c5d0cb3df1169629b046..4c62bce0bd31dbe0db66ea90af72e4af4ee36aa2 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadRaw3.cpp
@@ -174,6 +174,7 @@ namespace Mantid
       // Set the total proton charge for this run
       setProtonCharge(run);
       setRunNumber(run);
+      run.addProperty("Filename",m_filename);
 
       // Set progress to start of range taking account of ChildAlgorithms
       setProg(0.0);
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadRaw3Test.h b/Code/Mantid/Framework/DataHandling/test/LoadRaw3Test.h
index 4257a49ef5dd72f60a38d234252900bfc49a9ec7..4759352167113016342e489fdc5bbd65dcf651b9 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadRaw3Test.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadRaw3Test.h
@@ -519,6 +519,11 @@ public:
     for (it=detectorgroup.begin();it!=detectorgroup.end();it++)
       TS_ASSERT_EQUALS(*it,pixnum++);
 
+    //Test if filename log is found in both monitor and sata workspace
+    TS_ASSERT(output2D->run().hasProperty("Filename"));
+    TS_ASSERT(monitoroutput2D->run().hasProperty("Filename"));
+    TS_ASSERT_EQUALS(loader6.getPropertyValue("Filename"),output2D->run().getProperty("Filename")->value());
+    TS_ASSERT_EQUALS(loader6.getPropertyValue("Filename"),monitoroutput2D->run().getProperty("Filename")->value());
     AnalysisDataService::Instance().remove(outputSpace);
     AnalysisDataService::Instance().remove(outputSpace+"_Monitors");
   }