Index: /trunk/psModules/src/camera/pmFPAfile.c
===================================================================
--- /trunk/psModules/src/camera/pmFPAfile.c	(revision 7442)
+++ /trunk/psModules/src/camera/pmFPAfile.c	(revision 7443)
@@ -134,10 +134,9 @@
 }
 
-
+// define a pmFPAfile, bind to the optional fpa if supplied
 pmFPAfile *pmFPAfileDefine(psMetadata *files, psMetadata *camera, pmFPA *fpa, char *name)
 {
     PS_ASSERT_PTR_NON_NULL(files, NULL);
     PS_ASSERT_PTR_NON_NULL(camera, NULL);
-    PS_ASSERT_PTR_NON_NULL(fpa, NULL);
     PS_ASSERT_PTR_NON_NULL(name, NULL);
     PS_ASSERT_INT_POSITIVE(strlen(name), NULL);
@@ -932,9 +931,9 @@
     psArray *infiles = psMetadataLookupPtr(&status, config->arguments, argname);
     if (!status) {
-        psError(PS_ERR_IO, false, "Failed to read %s from metadata\n", argname);
+        psTrace("pmFPAfile", 5, "Failed to find %s in argument list", argname);
         return NULL;
     }
     if (infiles->n < 1) {
-        psError(PS_ERR_IO, false, "Found n == %d files in %s from metadata\n", infiles->n, argname);
+        psError(PS_ERR_IO, false, "Found n == %d files in %s in arguments\n", infiles->n, argname);
         return NULL;
     }
@@ -1218,4 +1217,8 @@
         // set the view to the corresponding entry for this phu
         pmFPAview *view = pmFPAAddSourceFromHeader (file->fpa, phu, format);
+        if (!view) {
+            psError(PS_ERR_IO, false, "Unable to determine source for %s", file->name);
+            return NULL;
+        }
 
         // XXX is this the correct psMD to save the filename?
