diff --git a/Framework/DataHandling/src/LoadLog.cpp b/Framework/DataHandling/src/LoadLog.cpp
index 5c903033ff4fa1986dca0cda30074b3bc8ab5777..b312bf2a83242887d4459f2881815191a81bb30e 100644
--- a/Framework/DataHandling/src/LoadLog.cpp
+++ b/Framework/DataHandling/src/LoadLog.cpp
@@ -39,6 +39,24 @@ using API::WorkspaceProperty;
 using DataObjects::Workspace2D_sptr;
 using Types::Core::DateAndTime;
 
+namespace {
+
+template <class MapClass, class LoggerType>
+void addLogDataToRun(Mantid::API::Run &run, MapClass &aMap,
+                     LoggerType &logger) {
+  for (auto &itr : aMap) {
+    try {
+      run.addLogData(itr.second.release());
+    } catch (std::invalid_argument &e) {
+      logger.warning() << e.what() << '\n';
+    } catch (Exception::ExistsError &e) {
+      logger.warning() << e.what() << '\n';
+    }
+  }
+}
+
+} // namespace
+
 /// Empty default constructor
 LoadLog::LoadLog() {}
 
@@ -288,18 +306,8 @@ void LoadLog::loadThreeColumnLogFile(std::ifstream &logFileStream,
       }
     }
   }
-  try {
-    for (auto &itr : dMap) {
-      run.addLogData(itr.second.release());
-    }
-    for (auto &sitr : sMap) {
-      run.addLogData(sitr.second.release());
-    }
-  } catch (std::invalid_argument &e) {
-    g_log.warning() << e.what();
-  } catch (Exception::ExistsError &e) {
-    g_log.warning() << e.what();
-  }
+  addLogDataToRun(run, dMap, g_log);
+  addLogDataToRun(run, sMap, g_log);
 }
 
 /**
diff --git a/Framework/DataHandling/test/LoadLogTest.h b/Framework/DataHandling/test/LoadLogTest.h
index 8238532187042ce3f9dd37c3443e99b759c67572..13212a393045857e284f2268e43149f009083f65 100644
--- a/Framework/DataHandling/test/LoadLogTest.h
+++ b/Framework/DataHandling/test/LoadLogTest.h
@@ -3,23 +3,25 @@
 
 #include <cxxtest/TestSuite.h>
 
-#include "MantidDataHandling/LoadLog.h"
-#include "MantidAPI/WorkspaceFactory.h"
-#include "MantidGeometry/Instrument.h"
-#include "MantidDataObjects/Workspace2D.h"
+#include "MantidAPI/Algorithm.h"
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidKernel/Exception.h"
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/Workspace.h"
-#include "MantidAPI/Algorithm.h"
+#include "MantidAPI/WorkspaceFactory.h"
+#include "MantidDataHandling/LoadLog.h"
+#include "MantidDataObjects/Workspace2D.h"
+#include "MantidGeometry/Instrument.h"
 #include "MantidGeometry/Instrument/Component.h"
+#include "MantidKernel/Exception.h"
 #include "MantidKernel/TimeSeriesProperty.h"
+#include "MantidTestHelpers/ScopedFileHelper.h"
 #include <vector>
 
 using namespace Mantid::API;
 using namespace Mantid::Kernel;
 using namespace Mantid::DataHandling;
 using namespace Mantid::DataObjects;
+using namespace ScopedFileHelper;
 using Mantid::Types::Core::DateAndTime;
 
 class LoadLogTest : public CxxTest::TestSuite {
@@ -135,6 +137,37 @@ public:
     AnalysisDataService::Instance().remove(outputSpace);
   }
 
+  void test_log_file_has_error() {
+    std::string logFileText("2007-11-16T13:25:48 i1 0 \n"
+                            "2007-11-16T13:29:36 str1  a\n"
+                            "2007-11-16T13:29:49 i2 1\n"
+                            "2007-11-16T13:30:21 str2  b\n"
+                            "2007-11-16T13:32:38 num1 3\n"
+                            "2007-11-16T13:43:40 nspectra 12\n"
+                            "2007-11-16T13:44:33 num2 4\n"
+                            "2007-11-16T14:00:21 str3 c\n");
+    ScopedFile file(logFileText, "test_log_file.log");
+    MatrixWorkspace_sptr ws =
+        WorkspaceFactory::Instance().create("Workspace2D", 1, 1, 1);
+    ws->mutableRun().addProperty("nspectra", 1);
+    // "nspectra" is already in the logs when LoadLog runs
+    LoadLog alg;
+    alg.initialize();
+    alg.setPropertyValue("Filename", file.getFileName());
+    alg.setProperty("Workspace", ws);
+    alg.execute();
+    auto props = ws->run().getProperties();
+    TS_ASSERT_EQUALS(props.size(), 8);
+    TS_ASSERT(ws->run().hasProperty("nspectra"));
+    TS_ASSERT(ws->run().hasProperty("i1"));
+    TS_ASSERT(ws->run().hasProperty("i2"));
+    TS_ASSERT(ws->run().hasProperty("num1"));
+    TS_ASSERT(ws->run().hasProperty("num2"));
+    TS_ASSERT(ws->run().hasProperty("str1"));
+    TS_ASSERT(ws->run().hasProperty("str2"));
+    TS_ASSERT(ws->run().hasProperty("str3"));
+  }
+
   void do_test_SNSTextFile(std::string names, std::string units, bool willFail,
                            bool createWorkspace = true,
                            std::string expectedLastUnit = "Furlongs") {