diff --git a/Framework/DataHandling/src/LoadHelper.cpp b/Framework/DataHandling/src/LoadHelper.cpp
index 41d090fcee30cce8844a13d5418a559cdde19641..1f68e561fdb55d1773fc3503ed6ee982e8c16b40 100644
--- a/Framework/DataHandling/src/LoadHelper.cpp
+++ b/Framework/DataHandling/src/LoadHelper.cpp
@@ -11,6 +11,7 @@
 
 #include <nexus/napi.h>
 
+#include <boost/algorithm/string.hpp>
 #include <boost/algorithm/string/predicate.hpp> //assert(boost::algorithm::ends_with("mystring", "ing"));
 
 namespace Mantid {
@@ -210,7 +211,7 @@ void LoadHelper::recurseAndAddNexusFieldsToWsRun(NXhandle nxfileID,
       if ((opengroup_status = NXopengroup(nxfileID, nxname, nxclass)) ==
           NX_OK) {
 
-        if (!std::string(nxclass).empty()) {
+        if (!boost::algorithm::contains(std::string(nxclass), "ILL")) {
 
           // Go down to one level, if the group is known to nexus
           std::string p_nxname(
diff --git a/Framework/Kernel/src/NexusDescriptor.cpp b/Framework/Kernel/src/NexusDescriptor.cpp
index 59f55997f07277d719c94baed102ce730c57158d..cb3b9489f9260627fc86a490504b8cdbe4d35840 100644
--- a/Framework/Kernel/src/NexusDescriptor.cpp
+++ b/Framework/Kernel/src/NexusDescriptor.cpp
@@ -1,5 +1,7 @@
 #include "MantidKernel/NexusDescriptor.h"
 
+#include <boost/algorithm/string.hpp>
+
 #include <nexus/NeXusFile.hpp>
 #include <nexus/NeXusException.hpp>
 
@@ -245,8 +247,9 @@ void NexusDescriptor::walkFile(::NeXus::File &file, const std::string &rootPath,
   for (auto it = dirents.begin(); it != itend; ++it) {
     const std::string &entryName = it->first;
     const std::string &entryClass = it->second;
-    const std::string entryPath = rootPath + "/" + entryName;
-    if (entryClass == "SDS" || entryClass.empty()) {
+    const std::string entryPath =
+        std::string(rootPath).append("/").append(entryName);
+    if (entryClass == "SDS" || boost::algorithm::contains(entryClass, "ILL")) {
       pmap.emplace(entryPath, entryClass);
     } else if (entryClass == "CDF0.0") {
       // Do nothing with this