diff --git a/Framework/NexusGeometry/src/NexusGeometryParser.cpp b/Framework/NexusGeometry/src/NexusGeometryParser.cpp
index b051e8bd49575a174d0e9eba3c6a6bfbf9b34038..531bc350a841ef6accc1b1d96a01cfe01d7af4dc 100644
--- a/Framework/NexusGeometry/src/NexusGeometryParser.cpp
+++ b/Framework/NexusGeometry/src/NexusGeometryParser.cpp
@@ -155,10 +155,21 @@ private:
       auto nCharacters = dataType.getSize();
       std::vector<char> value(nCharacters);
       data.read(value.data(), dataType, data.getSpace());
-      return std::string(value.begin(), value.end());
+      auto str = std::string(value.begin(), value.end());
+      str.erase(std::find(str.begin(), str.end(), '\0'), str.end());
+      return str;
     }
   }
 
+  // Provided to support invalid or null-termination character strings
+  std::string readOrSubsitute(const std::string &dataset, const Group &group,
+                              std::string &substitue) {
+    auto read = get1DStringDataset(dataset, group);
+    if (read.empty())
+      read = substitue;
+    return read;
+  }
+
   /** Open subgroups of parent group
    *   If firstEntryOnly=true, only the first match is returned as a vector of
    *   size 1.
@@ -589,7 +600,7 @@ private:
     Group sourceGroup = utilities::findGroupOrThrow(instrumentGroup, NX_SOURCE);
     std::string sourceName = "Unspecfied";
     if (utilities::findDataset(sourceGroup, "name"))
-      sourceName = get1DStringDataset("name", sourceGroup);
+      sourceName = readOrSubsitute("name", sourceGroup, sourceName);
     auto sourceTransformations = getTransformations(file, sourceGroup);
     auto defaultPos = Eigen::Vector3d(0.0, 0.0, 0.0);
     builder.addSource(sourceName, sourceTransformations * defaultPos);
@@ -605,7 +616,7 @@ private:
         sampleTransforms * Eigen::Vector3d(0.0, 0.0, 0.0);
     std::string sampleName = "Unspecified";
     if (utilities::findDataset(sampleGroup, "name"))
-      sampleName = get1DStringDataset("name", sampleGroup);
+      sampleName = readOrSubsitute("name", sampleGroup, sampleName);
     builder.addSample(sampleName, samplePos);
   }