diff --git a/Device/InputOutput/OutputDataReadWriteNicos.cpp b/Device/InputOutput/OutputDataReadWriteNicos.cpp
index 82d5fe987981a2beaafa23c5a7f2e7968b39535f..d61a3f2b2fec0bb351e7a6e0cbdc747d26f6fb47 100644
--- a/Device/InputOutput/OutputDataReadWriteNicos.cpp
+++ b/Device/InputOutput/OutputDataReadWriteNicos.cpp
@@ -33,12 +33,16 @@ OutputData<double>* OutputDataReadWriteNicos::readOutputData(std::istream& input
         if (!inFileSection && BaseUtils::String::startsWith(line, "%File")) {
             inFileSection = true;
             fileSectionFound = true;
+            continue;
         }
+
         if (!inFileSection)
             continue;
 
-        if (BaseUtils::String::startsWith(line, "%"))
+        if (BaseUtils::String::startsWith(line, "%")) {
+            inFileSection = false;
             break;
+        }
 
         if (BaseUtils::String::startsWith(line, "DataSizeX"))
             width = readAssignedPositiveIntValue(line);
@@ -70,12 +74,16 @@ OutputData<double>* OutputDataReadWriteNicos::readOutputData(std::istream& input
         if (!inCountSection && BaseUtils::String::startsWith(line, "%Counts")) {
             inCountSection = true;
             countSectionFound = true;
+            continue;
         }
+
         if (!inCountSection)
             continue;
 
-        if (BaseUtils::String::startsWith(line, "%"))
+        if (BaseUtils::String::startsWith(line, "%")) {
+            inCountSection = false;
             break;
+        }
 
         // line is a data line
         line = BaseUtils::String::trim(line, " ");