Index: trunk/ppStats/src/ppStatsLoop.c
===================================================================
--- trunk/ppStats/src/ppStatsLoop.c	(revision 18168)
+++ trunk/ppStats/src/ppStatsLoop.c	(revision 24776)
@@ -19,5 +19,27 @@
     psMetadata *newResults = psMetadataAlloc();
 
-    // Iterate through the FPA
+    // check if we can legitimately iterate to the chip level
+    psArray *chips = fpa->chips;        // Array of chips
+    if (view->chip >= chips->n) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Desired chip view (%d) doesn't match "
+                "number of chips (%ld)\n", view->chip, chips->n);
+        return NULL;
+    }
+
+    // Iterate over chips (if view->chip is set, skip all others)
+    for (int i = 0; i < chips->n; i++) {
+        if ((view->chip >= 0) && (i != view->chip)) continue;
+        pmChip *chip = chips->data[i];  // Chip of interest
+        *result = ppStatsChip(newResults, chip, fits, view, data, config);
+        if (*result != PS_EXIT_SUCCESS) {
+            psError(PS_ERR_UNKNOWN, false, "trouble with stats for chip %d\n", i);
+            psFree (view);
+            psFree (newResults);
+            return NULL;
+        }
+    }
+
+    // Iterate through the FPA -- Do this after the chip since we in the SPLIT cases, we
+    // only populate the FPA concepts after chips have been read.
     if (psListLength(data->headers) > 0 && fpa->hdu) {
         if (fits && !pmFPAReadHeader(fpa, fits, config)) {
@@ -43,25 +65,4 @@
     }
 
-    // check if we can legitimately iterate to the chip level
-    psArray *chips = fpa->chips;        // Array of chips
-    if (view->chip >= chips->n) {
-        psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Desired chip view (%d) doesn't match "
-                "number of chips (%ld)\n", view->chip, chips->n);
-        return NULL;
-    }
-
-    // Iterate over chips (if view->chip is set, skip all others)
-    for (int i = 0; i < chips->n; i++) {
-        if ((view->chip >= 0) && (i != view->chip)) continue;
-        pmChip *chip = chips->data[i];  // Chip of interest
-        *result = ppStatsChip(newResults, chip, fits, view, data, config);
-        if (*result != PS_EXIT_SUCCESS) {
-            psError(PS_ERR_UNKNOWN, false, "trouble with stats for chip %d\n", i);
-            psFree (view);
-            psFree (newResults);
-            return NULL;
-        }
-    }
-
     if (fits) {
         pmFPAFreeData(fpa);
