Index: /trunk/pswarp/src/pswarpParseCamera.c
===================================================================
--- /trunk/pswarp/src/pswarpParseCamera.c	(revision 13684)
+++ /trunk/pswarp/src/pswarpParseCamera.c	(revision 13685)
@@ -72,20 +72,23 @@
         }
     }
+    psFree (skyConfig);
 
     // Chip selection: turn on only the chips specified
-    char *chipLine = psMetadataLookupStr(NULL, config->arguments, "CHIP_SELECTIONS");
-    psArray *chips = psStringSplitArray (chipLine, ",", false);
-    if (chips->n > 0) {
-        pmFPASelectChip (input->fpa, -1, true); // deselect all chips
-        for (int i = 0; i < chips->n; i++) {
-            int chipNum = atoi(chips->data[i]);
-            if (! pmFPASelectChip(input->fpa, chipNum, false)) {
-                psError(PSWARP_ERR_CONFIG, true, "Chip number %d doesn't exist in camera.\n", chipNum);
-                return false;
+    bool mdok;                          // Status of MD lookup
+    char *chipLine = psMetadataLookupStr(&mdok, config->arguments, "CHIP_SELECTIONS");
+    if (mdok) {
+        psArray *chips = psStringSplitArray (chipLine, ",", false);
+        if (chips->n > 0) {
+            pmFPASelectChip (input->fpa, -1, true); // deselect all chips
+            for (int i = 0; i < chips->n; i++) {
+                int chipNum = atoi(chips->data[i]);
+                if (! pmFPASelectChip(input->fpa, chipNum, false)) {
+                    psError(PSWARP_ERR_CONFIG, true, "Chip number %d doesn't exist in camera.\n", chipNum);
+                    return false;
+                }
             }
         }
+        psFree (chips);
     }
-    psFree (chips);
-    psFree (skyConfig);
 
     psTrace("pswarp", 1, "Done with pswarpParseCamera...\n");
