diff --git a/Framework/Algorithms/src/CreateWorkspace.cpp b/Framework/Algorithms/src/CreateWorkspace.cpp
index e60bd8b7437576604c0cca6a518a3093b56832ec..a8bb3767f6db3f06e07448566f462567da0b38bd 100644
--- a/Framework/Algorithms/src/CreateWorkspace.cpp
+++ b/Framework/Algorithms/src/CreateWorkspace.cpp
@@ -199,6 +199,10 @@ void CreateWorkspace::exec() {
     const std::vector<double>::difference_type yEnd = yStart + ySize;
     auto local_i = localIndices[0];
 
+    // There is no instrument so setting detector IDs makes no sense, but if we
+    // don't we break quite a few unit tests relying on this legacy behavior.
+    outputWS->getSpectrum(local_i).setDetectorID(i + 1);
+
     // Just set the pointer if common X bins. Otherwise, copy in the right chunk
     // (as we do for Y).
     if (!commonX)