Index: trunk/psModules/src/camera/pmFPAfileDefine.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileDefine.c	(revision 11687)
+++ trunk/psModules/src/camera/pmFPAfileDefine.c	(revision 11801)
@@ -180,37 +180,26 @@
     }
 
-    file->camera = psMemIncrRefCounter(config->camera);
+    psMetadata *camera;                 // Camera to use
+    if (fpa && fpa->camera) {
+        camera = (psMetadata*)fpa->camera; // Casting away const, so I can put it in the file
+    } else {
+        camera = config->camera;
+    }
+    file->camera = psMemIncrRefCounter(camera);
+
+    // select the format list from the selected camera
     const char *formatName = psMetadataLookupStr (&status, data, "FILE.FORMAT");
-    psMetadata *format = NULL;          // Camera format to use
-    if (formatName && strcasecmp(formatName, "NONE") != 0) {
-        // select the format list from the selected camera
-        psMetadata *formats = psMetadataLookupMetadata(&status, file->camera, "FORMATS"); // List of formats
-
-        // select the desired format
-        format = psMetadataLookupMetadata(&status, formats, formatName);
-        if (!format) {
-            psError(PS_ERR_IO, false, "format %s for %s not defined", formatName, name);
-            psFree(file);
-            return NULL;
-        }
-        file->format = psMemIncrRefCounter(format);
-        #if 0
-
-        file->src = psMemIncrRefCounter(fpa);
-        file->fpa = pmFPAConstruct(file->camera);
-        #endif
-
-    } else {
+    if (!formatName) {
+        formatName = config->formatName;
+    }
+    psMetadata *formats = psMetadataLookupMetadata(&status, file->camera, "FORMATS"); // List of formats
+    psMetadata *format = psMetadataLookupMetadata(&status, formats, formatName); // Camera format to use
+    if (!format) {
+        // Try to get by with the default
         format = config->format;
-        #if 0
-
-        file->fpa = psMemIncrRefCounter(fpa);
-        #endif
-
-    }
-    #if 1
+    }
+    file->format = psMemIncrRefCounter(format);
+
     file->fpa = psMemIncrRefCounter(fpa);
-    #endif
-
 
     file->fileLevel = pmFPAPHULevel(format);
@@ -925,7 +914,4 @@
     file->xBin = xBin;
     file->yBin = yBin;
-    psFree (file->format);
-    file->format = psMemIncrRefCounter(format);
-
     psFree (fpa);
     return file;
