diff --git a/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C b/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C
index 002e4fab5b2866552592314cad524d8d98bbf509..b711b2d17f01be5409002cd83c2892828a670a6d 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectFile/functionObjectFile.C
@@ -97,6 +97,8 @@ void Foam::functionObjectFile::createFiles()
                 filePtrs_.set(i, new OFstream(outputDir/(fName + ".dat")));
 
                 writeFileHeader(i);
+
+                i++;
             }
         }
     }
@@ -240,6 +242,13 @@ Foam::OFstream& Foam::functionObjectFile::file()
             << endl;
     }
 
+    if (!filePtrs_.set(0))
+    {
+        FatalErrorIn("Foam::OFstream& Foam::functionObjectFile::file()")
+            << "File pointer at index " << 0 << " not allocated"
+            << abort(FatalError);
+    }
+
     return filePtrs_[0];
 }
 
@@ -269,6 +278,13 @@ Foam::OFstream& Foam::functionObjectFile::file(const label i)
             << abort(FatalError);
     }
 
+    if (!filePtrs_.set(i))
+    {
+        FatalErrorIn("Foam::OFstream& Foam::functionObjectFile::file()")
+            << "File pointer at index " << i << " not allocated"
+            << abort(FatalError);
+    }
+
     return filePtrs_[i];
 }