Index: trunk/psModules/src/camera/pmFPAfile.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfile.c	(revision 27128)
+++ trunk/psModules/src/camera/pmFPAfile.c	(revision 27134)
@@ -22,4 +22,13 @@
 static int fileNum = 0;                 // Number of file
 
+static bool fpaFileFreeStrict = true;   // Strict checking when file has been freed?
+
+bool pmFPAfileFreeSetStrict(bool new)
+{
+    bool old = fpaFileFreeStrict;       // Old value, to return
+    fpaFileFreeStrict = new;
+    return old;
+}
+
 static void pmFPAfileFree(pmFPAfile *file)
 {
@@ -28,5 +37,5 @@
     }
 
-    psAssert(file->fits == NULL, "File %s wasn't closed.", file->name);
+    psAssert(!fpaFileFreeStrict || file->fits == NULL, "File %s wasn't closed.", file->name);
 
     psTrace ("pmFPAfileFree", 5, "freeing %s\n", file->name);
Index: trunk/psModules/src/camera/pmFPAfile.h
===================================================================
--- trunk/psModules/src/camera/pmFPAfile.h	(revision 27128)
+++ trunk/psModules/src/camera/pmFPAfile.h	(revision 27134)
@@ -162,4 +162,9 @@
     );
 
+/// Set strict checking when freeing file
+///
+/// If true (default), freeing a pmFPAfile involves asserting that the FITS filehandle has been closed.
+bool pmFPAfileFreeSetStrict(bool new    // New state
+    );
 
 
