Index: trunk/ppSkycell/src/ppSkycellLoop.c
===================================================================
--- trunk/ppSkycell/src/ppSkycellLoop.c	(revision 35852)
+++ trunk/ppSkycell/src/ppSkycellLoop.c	(revision 36356)
@@ -139,4 +139,7 @@
     psArray *imageRegions = psArrayAlloc(data->numInputs); // Region for image
     psArray *regionHDUs = psArrayAlloc(data->numInputs);
+
+    psVector *exptimes = psVectorAllocEmpty(data->numInputs, PS_TYPE_F64);
+    
     // Determine which projection cells we have to deal with.
     for (int i = 0; i < data->numInputs; i++) {
@@ -187,10 +190,11 @@
             }
         }
-
-        if (!found) {
+	
+        if (!found) { // Add new projection cell if we didn't find one.
             psVectorAppend(crval1, wcs->crval1);
             psVectorAppend(crval2, wcs->crval2);
             psVectorAppend(cdelt1, wcs->cdelt1);
             psVectorAppend(cdelt2, wcs->cdelt2);
+
             psRegion *projRegion = psRegionAlloc(region->x0, region->x1, region->y0, region->y1);
             psArrayAdd(projRegions, projRegions->n, projRegion);
@@ -200,7 +204,14 @@
 	    psArrayAdd(regionHDUs,1,hdu);
             numProj++;
+
         }
-    }
-
+
+	// Save exptime
+	exptimes->data.F64[i] = psMetadataLookupF64(NULL, hdu->header, "EXPTIME");
+    }
+
+    psStats *stats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);
+    psVectorStats(stats,exptimes,NULL, NULL, 0);
+    
     pmFPAfileActivate(data->config->files, false, NULL);
     // Loop over projections
@@ -304,4 +315,11 @@
             }
 
+	    // Scale by exposure time
+	    double exptime_factor = pow(exptimes->data.F64[j]/stats->robustMedian,data->exptimeOrder);
+	    psBinaryOp(bin1RO->image,bin1RO->image,"/",
+		       psScalarAlloc(exptime_factor,  PS_TYPE_F64));
+	    psBinaryOp(bin2RO->image,bin2RO->image,"/",
+		       psScalarAlloc(exptime_factor,  PS_TYPE_F32));
+	    // End scaling
 #if (0)
             psRegion *imageRegion = imageRegions->data[j]; // Region for image
@@ -321,4 +339,9 @@
 		    xOffset1,yOffset1,xOffset2,yOffset2);
 
+	    // This is where any primary code would go.  I'm unclear on how it would work.
+
+	    
+
+	    
 	    // Overlay the data onto the appropriate pixels in the final outputs
             // XXX Completely neglecting rotations
@@ -463,5 +486,5 @@
 	  psMetadataAddS32(Fcell1->concepts,PS_LIST_TAIL,"CELL.YPARITY", PS_META_REPLACE,"",1);
 	  psMetadataAddS32(Fcell1->concepts,PS_LIST_TAIL,"CELL.READDIR", PS_META_REPLACE,"",1);
-
+	  psMetadataAddF64(Fcell1->concepts,PS_LIST_TAIL,"EXPTIME", PS_META_REPLACE, "", stats->robustMedian);
 	  pmReadout *Fro1 = pmReadoutAlloc(Fcell1);
 	  Fro1->image = image1;
@@ -538,4 +561,5 @@
 	  psMetadataAddS32(Fcell2->concepts,PS_LIST_TAIL,"CELL.YPARITY", PS_META_REPLACE,"",1);
 	  psMetadataAddS32(Fcell2->concepts,PS_LIST_TAIL,"CELL.READDIR", PS_META_REPLACE,"",1);
+	  psMetadataAddF64(Fcell2->concepts,PS_LIST_TAIL,"EXPTIME", PS_META_REPLACE, "", stats->robustMedian);
 	  
 	  pmReadout *Fro2 = pmReadoutAlloc(Fcell2); 
