Index: trunk/ippTools/src/pxtools.c
===================================================================
--- trunk/ippTools/src/pxtools.c	(revision 27408)
+++ trunk/ippTools/src/pxtools.c	(revision 27417)
@@ -181,5 +181,5 @@
     psFree(whereClause);
     if (fileWhere) {
-        psStringAppend(pQuery, fileWhere);
+        psStringAppend(pQuery, "%s", fileWhere);
     }
 
Index: trunk/ippconfig/recipes/filerules-mef.mdc
===================================================================
--- trunk/ippconfig/recipes/filerules-mef.mdc	(revision 27408)
+++ trunk/ippconfig/recipes/filerules-mef.mdc	(revision 27417)
@@ -265,7 +265,13 @@
 PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mk.fits                  MASK      COMP_MASK  FPA        TRUE      NONE
 PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.wt.fits                  VARIANCE  COMP_WT    FPA        TRUE      NONE
+PPSTACK.OUTPUT.EXP	OUTPUT {OUTPUT}.exp.fits     		 IMAGE     EXP	      FPA	 TRUE      NONE
+PPSTACK.OUTPUT.EXPNUM	OUTPUT {OUTPUT}.num.fits     		 MASK      EXPNUM     FPA	 TRUE      NONE
+PPSTACK.OUTPUT.EXPWT	OUTPUT {OUTPUT}.expwt.fits               VARIANCE  EXP	      FPA	 TRUE      NONE
 PPSTACK.UNCONV          OUTPUT {OUTPUT}.unconv.fits              IMAGE     COMP_IMG   FPA        TRUE      NONE
 PPSTACK.UNCONV.MASK     OUTPUT {OUTPUT}.unconv.mask.fits         MASK      COMP_MASK  FPA        TRUE      NONE
 PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits           VARIANCE  COMP_WT    FPA        TRUE      NONE
+PPSTACK.UNCONV.EXP	OUTPUT {OUTPUT}.unconv.exp.fits 	 IMAGE     EXP	      FPA	 TRUE      NONE
+PPSTACK.UNCONV.EXPNUM	OUTPUT {OUTPUT}.unconv.num.fits 	 MASK  	   EXPNUM     FPA	 TRUE      NONE
+PPSTACK.UNCONV.EXPWT	OUTPUT {OUTPUT}.unconv.expwt.fits        VARIANCE  EXP	      FPA	 TRUE      NONE
 PPSTACK.TARGET.PSF      OUTPUT {OUTPUT}.target.psf               PSF       NONE       CHIP       TRUE      NONE
 PPSTACK.CONV.KERNEL     OUTPUT {OUTPUT}.{FILE.INDEX}.kernel      SUBKERNEL NONE       FPA        TRUE      NONE
Index: trunk/ippconfig/recipes/filerules-simple.mdc
===================================================================
--- trunk/ippconfig/recipes/filerules-simple.mdc	(revision 27408)
+++ trunk/ippconfig/recipes/filerules-simple.mdc	(revision 27417)
@@ -211,10 +211,16 @@
 PPSUB.REF.CONV.VARIANCE OUTPUT {OUTPUT}.refConv.wt.fits VARIANCE NONE     FPA        TRUE      NONE
 					     
-PPSTACK.OUTPUT          OUTPUT {OUTPUT}.fits         IMAGE     NONE       FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits    MASK      NONE       FPA        TRUE      NONE
-PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.weight.fits  VARIANCE  NONE       FPA        TRUE      NONE
+PPSTACK.OUTPUT          OUTPUT {OUTPUT}.fits         IMAGE     COMP_IMG   FPA        TRUE      NONE
+PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits    MASK      COMP_MASK  FPA        TRUE      NONE
+PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.weight.fits  VARIANCE  COMP_WT    FPA        TRUE      NONE
+PPSTACK.OUTPUT.EXP	OUTPUT {OUTPUT}.exp.fits     IMAGE     EXP	  FPA	     TRUE      NONE
+PPSTACK.OUTPUT.EXPNUM	OUTPUT {OUTPUT}.num.fits     MASK      EXPNUM	  FPA	     TRUE      NONE
+PPSTACK.OUTPUT.EXPWT	OUTPUT {OUTPUT}.expwt.fits   VARIANCE  EXP	  FPA	     TRUE      NONE
 PPSTACK.UNCONV          OUTPUT {OUTPUT}.unconv.fits  IMAGE     COMP_IMG   FPA        TRUE      NONE
 PPSTACK.UNCONV.MASK     OUTPUT {OUTPUT}.unconv.mask.fits MASK  COMP_MASK  FPA        TRUE      NONE
 PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits VARIANCE COMP_WT   FPA        TRUE      NONE
+PPSTACK.UNCONV.EXP	OUTPUT {OUTPUT}.unconv.exp.fits IMAGE  EXP	  FPA	     TRUE      NONE
+PPSTACK.UNCONV.EXPNUM	OUTPUT {OUTPUT}.unconv.num.fits MASK   EXPNUM	  FPA	     TRUE      NONE
+PPSTACK.UNCONV.EXPWT	OUTPUT {OUTPUT}.unconv.expwt.fits VARIANCE EXP	  FPA	     TRUE      NONE
 PPSTACK.TARGET.PSF      OUTPUT {OUTPUT}.target.psf   PSF       NONE       CHIP       TRUE      NONE
 PPSTACK.CONV.KERNEL     OUTPUT {OUTPUT}.{FILE.INDEX}.kernel SUBKERNEL NONE FPA       TRUE      NONE
Index: trunk/ippconfig/recipes/filerules-split.mdc
===================================================================
--- trunk/ippconfig/recipes/filerules-split.mdc	(revision 27408)
+++ trunk/ippconfig/recipes/filerules-split.mdc	(revision 27417)
@@ -233,7 +233,13 @@
 PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA        TRUE      NONE
 PPSTACK.OUTPUT.VARIANCE OUTPUT {OUTPUT}.wt.fits                  VARIANCE  COMP_WT    FPA        TRUE      NONE
+PPSTACK.OUTPUT.EXP	OUTPUT {OUTPUT}.exp.fits     		 IMAGE     EXP	      FPA	 TRUE      NONE
+PPSTACK.OUTPUT.EXPNUM	OUTPUT {OUTPUT}.num.fits     		 MASK      EXPNUM     FPA	 TRUE      NONE
+PPSTACK.OUTPUT.EXPWT	OUTPUT {OUTPUT}.expwt.fits               VARIANCE  EXP	      FPA	 TRUE      NONE
 PPSTACK.UNCONV          OUTPUT {OUTPUT}.unconv.fits              IMAGE     COMP_IMG   FPA        TRUE      NONE
 PPSTACK.UNCONV.MASK     OUTPUT {OUTPUT}.unconv.mask.fits         MASK      COMP_MASK  FPA        TRUE      NONE
 PPSTACK.UNCONV.VARIANCE OUTPUT {OUTPUT}.unconv.wt.fits           VARIANCE  COMP_WT    FPA        TRUE      NONE
+PPSTACK.UNCONV.EXP	OUTPUT {OUTPUT}.unconv.exp.fits 	 IMAGE     EXP	      FPA	 TRUE      NONE
+PPSTACK.UNCONV.EXPNUM	OUTPUT {OUTPUT}.unconv.num.fits 	 MASK  	   EXPNUM     FPA	 TRUE      NONE
+PPSTACK.UNCONV.EXPWT	OUTPUT {OUTPUT}.unconv.expwt.fits        VARIANCE  EXP	      FPA	 TRUE      NONE
 PPSTACK.TARGET.PSF      OUTPUT {OUTPUT}.target.psf               PSF       NONE       CHIP       TRUE      NONE
 PPSTACK.CONV.KERNEL     OUTPUT {OUTPUT}.{FILE.INDEX}.kernel      SUBKERNEL NONE       FPA        TRUE      NONE
Index: trunk/ippconfig/recipes/fitstypes.mdc
===================================================================
--- trunk/ippconfig/recipes/fitstypes.mdc	(revision 27408)
+++ trunk/ippconfig/recipes/fitstypes.mdc	(revision 27417)
@@ -99,2 +99,27 @@
 END
 
+# Compressed exposure image
+EXP	METADATA
+	BITPIX		S32	16
+	SCALING		STR	MANUAL
+	FUZZ		BOOL	FALSE
+	# Note: TRUE = BZERO + BSCALE * DISK
+	BSCALE		F32	0.1	# Disk is stored as 1/10th sec
+	BZERO		F32	3276.8	# Store unsigned zero as zero
+	COMPRESSION	STR	GZIP
+	TILE.X		S32	0
+	TILE.Y		S32	1
+	TILE.Z		S32	1
+	NOISE		S32	8
+END
+
+# Compressed number image
+EXPNUM	METADATA
+	BITPIX		S32	16
+	COMPRESSION	STR	GZIP
+	TILE.X		S32	0
+	TILE.Y		S32	1
+	TILE.Z		S32	1
+	NOISE		S32	8
+END
+
Index: trunk/ppStack/src/ppStackCamera.c
===================================================================
--- trunk/ppStack/src/ppStackCamera.c	(revision 27408)
+++ trunk/ppStack/src/ppStackCamera.c	(revision 27417)
@@ -283,4 +283,53 @@
     }
 
+
+    // Exposure image
+    pmFPA *expFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain the output
+    if (!expFPA) {
+        psError(psErrorCodeLast(), false, "Unable to construct an FPA from camera configuration.");
+        return false;
+    }
+    pmFPAfile *exp = pmFPAfileDefineOutput(config, expFPA, "PPSTACK.OUTPUT.EXP");
+    psFree(expFPA);                        // Drop reference
+    if (!exp) {
+        psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.OUTPUT.EXP"));
+        return false;
+    }
+    if (exp->type != PM_FPA_FILE_IMAGE) {
+        psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.OUTPUT.EXP is not of type IMAGE");
+        return false;
+    }
+    exp->save = true;
+
+    if (!pmFPAAddSourceFromFormat(expFPA, "Stack", exp->format)) {
+        psError(psErrorCodeLast(), false, "Unable to generate output FPA.");
+        return false;
+    }
+
+    // Exposure numbers
+    pmFPAfile *expNum = pmFPAfileDefineOutput(config, exp->fpa, "PPSTACK.OUTPUT.EXPNUM");
+    if (!expNum) {
+        psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.OUTPUT.EXPNUM"));
+        return false;
+    }
+    if (expNum->type != PM_FPA_FILE_MASK) {
+        psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.OUTPUT.EXPNUM is not of type MASK");
+        return false;
+    }
+    expNum->save = true;
+
+    // Weighted exposure
+    pmFPAfile *expWt = pmFPAfileDefineOutput(config, exp->fpa, "PPSTACK.OUTPUT.EXPWT");
+    if (!expWt) {
+        psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.OUTPUT.EXPWT"));
+        return false;
+    }
+    if (expWt->type != PM_FPA_FILE_VARIANCE) {
+        psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.OUTPUT.EXPWT is not of type VARIANCE");
+        return false;
+    }
+    expWt->save = true;
+
+
     if (havePSFs) {
         pmFPA *psfFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain PSF
@@ -302,5 +351,4 @@
     }
 
-#if 1
     // Unconvolved stack
     pmFPA *unconvFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain unconvolved output
@@ -351,5 +399,52 @@
         unconvVariance->save = true;
     }
-#endif
+
+
+    // Exposure image
+    pmFPA *unconvExpFPA = pmFPAConstruct(config->camera, config->cameraName); // FPA to contain the output
+    if (!unconvExpFPA) {
+        psError(psErrorCodeLast(), false, "Unable to construct an FPA from camera configuration.");
+        return false;
+    }
+    pmFPAfile *unconvExp = pmFPAfileDefineOutput(config, unconvExpFPA, "PPSTACK.UNCONV.EXP");
+    psFree(unconvExpFPA);               // Drop reference
+    if (!unconvExp) {
+        psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.UNCONV.EXP"));
+        return false;
+    }
+    if (unconvExp->type != PM_FPA_FILE_IMAGE) {
+        psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.UNCONV.EXP is not of type IMAGE");
+        return false;
+    }
+    unconvExp->save = true;
+
+    if (!pmFPAAddSourceFromFormat(unconvExpFPA, "Stack", unconvExp->format)) {
+        psError(psErrorCodeLast(), false, "Unable to generate output FPA.");
+        return false;
+    }
+
+    // Exposure numbers
+    pmFPAfile *unconvExpNum = pmFPAfileDefineOutput(config, unconvExp->fpa, "PPSTACK.UNCONV.EXPNUM");
+    if (!unconvExpNum) {
+        psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.UNCONV.MASK"));
+        return false;
+    }
+    if (unconvExpNum->type != PM_FPA_FILE_MASK) {
+        psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.UNCONV.EXPNUM is not of type MASK");
+        return false;
+    }
+    unconvExpNum->save = true;
+
+    // Weighted exposure
+    pmFPAfile *unconvExpWt = pmFPAfileDefineOutput(config, unconvExp->fpa, "PPSTACK.UNCONV.EXPWT");
+    if (!unconvExpWt) {
+        psError(psErrorCodeLast(), false, _("Unable to generate output file from PPSTACK.UNCONV.EXPWT"));
+        return false;
+    }
+    if (unconvExpWt->type != PM_FPA_FILE_VARIANCE) {
+        psError(PPSTACK_ERR_CONFIG, true, "PPSTACK.UNCONV.EXPWT is not of type VARIANCE");
+        return false;
+    }
+    unconvExpWt->save = true;
 
     // Output JPEGs
Index: trunk/ppStack/src/ppStackFiles.c
===================================================================
--- trunk/ppStack/src/ppStackFiles.c	(revision 27408)
+++ trunk/ppStack/src/ppStackFiles.c	(revision 27417)
@@ -23,7 +23,11 @@
 /// Regular (convolved) stack files
 static char *filesStack[] = { "PPSTACK.OUTPUT", "PPSTACK.OUTPUT.MASK", "PPSTACK.OUTPUT.VARIANCE",
-                              "PPSTACK.OUTPUT.JPEG1", "PPSTACK.OUTPUT.JPEG2", NULL };
+                              "PPSTACK.OUTPUT.EXP", "PPSTACK.OUTPUT.EXPNUM", "PPSTACK.OUTPUT.EXPWT",
+                              "PPSTACK.OUTPUT.JPEG1", "PPSTACK.OUTPUT.JPEG2",
+                              NULL };
 /// Unconvolved stack files
-static char *filesUnconv[] = { "PPSTACK.UNCONV", "PPSTACK.UNCONV.MASK", "PPSTACK.UNCONV.VARIANCE", NULL };
+static char *filesUnconv[] = { "PPSTACK.UNCONV", "PPSTACK.UNCONV.MASK", "PPSTACK.UNCONV.VARIANCE",
+                               "PPSTACK.UNCONV.EXP", "PPSTACK.UNCONV.EXPNUM", "PPSTACK.UNCONV.EXPWT",
+                               NULL };
 
 /// Files for photometry
Index: trunk/ppStack/src/ppStackMatch.c
===================================================================
--- trunk/ppStack/src/ppStackMatch.c	(revision 27408)
+++ trunk/ppStack/src/ppStackMatch.c	(revision 27417)
@@ -18,5 +18,5 @@
 #define COVAR_FRAC 0.01                 // Truncation fraction for covariance matrix
 
-//#define TESTING                         // Enable debugging output
+#define TESTING                         // Enable debugging output
 
 #ifdef TESTING
Index: trunk/ppStack/src/ppStackReject.c
===================================================================
--- trunk/ppStack/src/ppStackReject.c	(revision 27408)
+++ trunk/ppStack/src/ppStackReject.c	(revision 27417)
@@ -10,5 +10,5 @@
 #include "ppStackLoop.h"
 
-//#define TESTING
+#define TESTING
 
 bool ppStackReject(ppStackOptions *options, pmConfig *config)
Index: trunk/psLib/src/fits/psFitsScale.c
===================================================================
--- trunk/psLib/src/fits/psFitsScale.c	(revision 27408)
+++ trunk/psLib/src/fits/psFitsScale.c	(revision 27417)
@@ -384,5 +384,5 @@
                 } else { \
                     value = (value - zero) * scale; \
-                    if (options->fuzz) { \
+                    if (options->fuzz && (value - (int)value != 0.0)) { \
                        /* Add random factor [-0.5,0.5): adds a variance of 1/12, */ \
                        /* but preserves the expectation value */ \
Index: trunk/psModules/src/camera/pmFPAfileDefine.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileDefine.c	(revision 27408)
+++ trunk/psModules/src/camera/pmFPAfileDefine.c	(revision 27417)
@@ -57,5 +57,5 @@
         return NAN;
     }
-    int value = psMetadataItemParseF32(item); // Value of interst
+    float value = psMetadataItemParseF32(item); // Value of interst
     return value;
 }
@@ -72,5 +72,5 @@
         return NAN;
     }
-    int value = psMetadataItemParseF64(item); // Value of interst
+    double value = psMetadataItemParseF64(item); // Value of interst
     return value;
 }
@@ -313,4 +313,13 @@
         }
 
+        psMetadataItem *fuzz = psMetadataLookup(scheme, "FUZZ"); // Quantisation fuzz?
+        if (fuzz) {
+            if (fuzz->type != PS_TYPE_BOOL) {
+                psWarning("FUZZ in compression scheme %s isn't boolean.", fitsType);
+                goto FITS_OPTIONS_DONE;
+            }
+            options->fuzz = fuzz->data.B;
+        }
+
         // Compression options
         const char *compressString = psMetadataLookupStr(&mdok, scheme, "COMPRESSION"); // Compression type
Index: trunk/psModules/src/imcombine/pmStack.c
===================================================================
--- trunk/psModules/src/imcombine/pmStack.c	(revision 27408)
+++ trunk/psModules/src/imcombine/pmStack.c	(revision 27417)
@@ -35,6 +35,6 @@
 
 //#define TESTING                         // Enable test output
-//#define TEST_X 2148-1                     // x coordinate to examine
-//#define TEST_Y 248-1                     // y coordinate to examine
+//#define TEST_X 843-1                     // x coordinate to examine
+//#define TEST_Y 813-1                     // y coordinate to examine
 //#define TEST_RADIUS 0                    // Radius to examine
 
@@ -46,4 +46,5 @@
     psVector *variances;                // Pixel variances
     psVector *weights;                  // Pixel weightings
+    psVector *exps;                     // Pixel exposures
     psVector *sources;                  // Pixel sources (which image did they come from?)
     psVector *limits;                   // Rejection limits
@@ -57,4 +58,5 @@
     psFree(buffer->variances);
     psFree(buffer->weights);
+    psFree(buffer->exps);
     psFree(buffer->sources);
     psFree(buffer->limits);
@@ -73,4 +75,5 @@
     buffer->variances = psVectorAlloc(numImages, PS_TYPE_F32);
     buffer->weights = psVectorAlloc(numImages, PS_TYPE_F32);
+    buffer->exps = psVectorAlloc(numImages, PS_TYPE_F32);
     buffer->sources = psVectorAlloc(numImages, PS_TYPE_U16);
     buffer->limits = psVectorAlloc(numImages, PS_TYPE_F32);
@@ -95,6 +98,9 @@
 static bool combinationMeanVariance(float *mean, // Mean value, to return
                                     float *var, // Variance value, to return
+                                    float *exp, // Exposure time, to return
+                                    float *expWeight,          // Weighted exposure time, to return
                                     const psVector *values, // Values to combine
                                     const psVector *variances, // Pixel variances to combine
+                                    const psVector *exps,      // Exposure times to combine
                                     const psVector *weights // Weights to apply
                                     )
@@ -121,4 +127,7 @@
     float sumVarianceWeight = 0.0;     // Sum of the pixel variances multiplied by the global weights
     float sumWeight = 0.0;              // Sum of the image weights
+    float sumExp = 0.0;                 // Sum of the exposure time
+    float sumExpWeight = 0.0;           // Sum of the exposure time multiplied by the global weights
+    int numGood = 0;                    // Number of good exposures
     for (int i = 0; i < values->n; i++) {
         sumValueWeight += values->data.F32[i] * weights->data.F32[i];
@@ -127,4 +136,9 @@
             sumVarianceWeight += variances->data.F32[i] * PS_SQR(weights->data.F32[i]);
         }
+        if (exps) {
+            sumExp += exps->data.F32[i];
+            sumExpWeight += exps->data.F32[i] * weights->data.F32[i];
+            numGood++;
+        }
     }
 
@@ -136,4 +150,10 @@
     if (var) {
         *var = sumVarianceWeight / PS_SQR(sumWeight);
+    }
+    if (exp) {
+        *exp = sumExp;
+    }
+    if (expWeight) {
+        *expWeight = sumExpWeight;
     }
     return true;
@@ -276,4 +296,5 @@
                            const psArray *inputs, // Stack data
                            const psVector *weights, // Global (single value) weights for data, or NULL
+                           const psVector *exps,    // Exposures for data, or NULL
                            const psVector *addVariance, // Additional variance for data
                            const psVector *reject, // Indices of pixels to reject, or NULL
@@ -292,4 +313,5 @@
     psVector *pixelVariances = variance ? buffer->variances : NULL; // Variances for the pixel of interest
     psVector *pixelWeights = buffer->weights; // Image weights for the pixel of interest
+    psVector *pixelExps = buffer->exps;       // Exposure times
     psVector *pixelSources = buffer->sources; // Sources for the pixel of interest
     psVector *pixelLimits = buffer->limits; // Limits for the pixel of interest
@@ -331,4 +353,5 @@
         }
         pixelWeights->data.F32[numGood] = data->weight;
+        pixelExps->data.F32[numGood] = data->exp;
         pixelSources->data.U16[numGood] = i;
         numGood++;
@@ -347,7 +370,8 @@
     if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
         for (int i = 0; i < numGood; i++) {
-            fprintf(stderr, "Input %d, pixel %d,%d (%" PRIu16 "): %f %f (%f) %f %d\n",
+            fprintf(stderr, "Input %d, pixel %d,%d (%" PRIu16 "): %f %f (%f) %f %f %d\n",
                     i, x, y, pixelSources->data.U16[i], pixelData->data.F32[i], pixelVariances->data.F32[i],
-                    addVariance->data.F32[i], pixelWeights->data.F32[i], pixelSuspects->data.U8[i]);
+                    addVariance->data.F32[i], pixelWeights->data.F32[i], pixelExps->data.F32[i],
+                    pixelSuspects->data.U8[i]);
         }
     }
@@ -362,9 +386,13 @@
                           psImage *mask, // Combined mask, for output
                           psImage *variance, // Combined variance map, for output
+                          psImage *exp,   // Exposure map (time), for output
+                          psImage *expnum,       // Exposure map (number) for output
+                          psImage *expweight,    // Exposure map (weighted time) for output
                           int num,      // Number of good pixels
                           combineBuffer *buffer, // Buffer with vectors
                           int x, int y, // Coordinates of interest; frame of output image
                           psImageMaskType bad, // Value for bad pixels
-                          bool safe             // Safe combination?
+                          bool safe,           // Safe combination?
+                          float invTotalWeight    // Inverse of total weight for all inputs
                           )
 {
@@ -372,8 +400,11 @@
     psVector *pixelVariances = variance ? buffer->variances : NULL; // Variances for the pixel of interest
     psVector *pixelWeights = buffer->weights; // Image weights for the pixel of interest
+    psVector *pixelExps = buffer->exps;       // Exposure times
 
     // Default option is that the pixel is bad
     float imageValue = NAN, varianceValue = NAN; // Value for combined image and variance map
     psImageMaskType maskValue = bad;    // Value for combined mask
+    float expValue = 0.0, expWeightValue = NAN; // Exposure value (straight, and weighted)
+
     switch (num) {
       case 0: {
@@ -393,4 +424,8 @@
                   varianceValue = pixelVariances->data.F32[0];
               }
+              if (exp) {
+                  expValue = pixelExps->data.F32[0];
+                  expWeightValue = pixelExps->data.F32[0];
+              }
               maskValue = 0;
 #ifdef TESTING
@@ -411,13 +446,11 @@
           // Automatically accept the mean of the pixels only if we're not playing safe
           if (!safe) {
-              float mean, var;   // Mean and variance from combination
-              if (combinationMeanVariance(&mean, &var, pixelData, pixelVariances, pixelWeights)) {
-                  imageValue = mean;
-                  varianceValue = var;
+              if (combinationMeanVariance(&imageValue, &varianceValue, &expValue, &expWeightValue,
+                                          pixelData, pixelVariances, pixelExps, pixelWeights)) {
                   maskValue = 0;
 #ifdef TESTING
                   if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
                       fprintf(stderr, "Two inputs to combine using unsafe, pixel %d,%d --> %f %f\n",
-                              x, y, mean, var);
+                              x, y, imageValue, varianceValue);
                   }
 #endif
@@ -435,14 +468,12 @@
       default: {
           // Can combine without too much worrying
-          float mean, var;           // Mean and variance of the combination
-          if (!combinationMeanVariance(&mean, &var, pixelData, pixelVariances, pixelWeights)) {
+          if (!combinationMeanVariance(&imageValue, &varianceValue, &expValue, &expWeightValue,
+                                       pixelData, pixelVariances, pixelExps, pixelWeights)) {
               break;
           }
-          imageValue = mean;
-          varianceValue = var;
           maskValue = 0;
 #ifdef TESTING
           if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
-              fprintf(stderr, "Combined inputs, pixel %d,%d --> %f %f\n", x, y, mean, var);
+              fprintf(stderr, "Combined inputs, pixel %d,%d --> %f %f\n", x, y, imageValue, varianceValue);
           }
 #endif
@@ -456,9 +487,13 @@
         variance->data.F32[y][x] = varianceValue;
     }
-
-#ifdef TESTING
-    mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = num;
-#endif
-
+    if (exp) {
+        exp->data.F32[y][x] = expValue;
+    }
+    if (expnum) {
+        expnum->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = num;
+    }
+    if (expweight) {
+        expweight->data.F32[y][x] = expWeightValue * invTotalWeight;
+    }
 
     return;
@@ -803,5 +838,6 @@
                               int *numCols, int *numRows, // Size of (sky) images
                               const psArray *input, // Input array of pmStackData to validate
-                              const pmReadout *output // Output readout
+                              const pmReadout *output, // Output readout
+                              const pmReadout *exp    // Exposure map
     )
 {
@@ -869,4 +905,14 @@
     }
 
+    if (exp) {
+        PM_ASSERT_READOUT_NON_NULL(exp, false);
+        if (exp->image) {
+            PS_ASSERT_IMAGES_SIZE_EQUAL(exp->image, output->image, false);
+        }
+        if (exp->mask) {
+            PS_ASSERT_IMAGES_SIZE_EQUAL(exp->mask, output->image, false);
+        }
+    }
+
     return true;
 }
@@ -937,5 +983,5 @@
 
 /// Constructor
-pmStackData *pmStackDataAlloc(pmReadout *readout, float weight, float addVariance)
+pmStackData *pmStackDataAlloc(pmReadout *readout, float weight, float exp, float addVariance)
 {
     pmStackData *data = psAlloc(sizeof(pmStackData)); // Stack data, to return
@@ -946,4 +992,5 @@
     data->inspect = NULL;
     data->weight = weight;
+    data->exp = exp;
     data->addVariance = addVariance;
 
@@ -952,6 +999,8 @@
 
 /// Stack input images
-bool pmStackCombine(pmReadout *combined, psArray *input, psImageMaskType maskVal, psImageMaskType maskSuspect,
-                    psImageMaskType bad, int kernelSize, float iter, float rej, float sys, float olympic,
+bool pmStackCombine(pmReadout *combined, pmReadout *expmaps, psArray *input,
+                    psImageMaskType maskVal, psImageMaskType maskSuspect,
+                    psImageMaskType bad, int kernelSize,
+                    float iter, float rej, float sys, float olympic,
                     bool useVariance, bool safe, bool rejection)
 {
@@ -959,5 +1008,5 @@
     int num;                            // Number of inputs
     int numCols, numRows;               // Size of (sky) images
-    if (!validateInputData(&haveVariances, &num, &numCols, &numRows, input, combined)) {
+    if (!validateInputData(&haveVariances, &num, &numCols, &numRows, input, combined, expmaps)) {
         return false;
     }
@@ -977,12 +1026,19 @@
     psVector *addVariance = psVectorAlloc(num, PS_TYPE_F32); // Additional variance for each image
     psVector *weights = psVectorAlloc(num, PS_TYPE_F32); // Relative weighting for each image
+    psVector *exps = psVectorAlloc(num, PS_TYPE_F32);    // Exposure times for each image
     psArray *stack = psArrayAlloc(num); // Stack of readouts
+    float totalExpWeight = 0.0;           // Total value of all weighted exposure times
+    float totalExp = 0.0;                 // Total exposure time
     for (int i = 0; i < num; i++) {
         pmStackData *data = input->data[i]; // Stack data for this input
         if (!data) {
             weights->data.F32[i] = 0.0;
+            exps->data.F32[i] = NAN;
             continue;
         }
         weights->data.F32[i] = data->weight;
+        exps->data.F32[i] = data->exp;
+        totalExp += exps->data.F32[i];
+        totalExpWeight += exps->data.F32[i] * weights->data.F32[i];
         pmReadout *ro = data->readout;  // Readout of interest
         stack->data[i] = psMemIncrRefCounter(ro);
@@ -1003,4 +1059,5 @@
         }
     }
+    totalExpWeight = totalExp / totalExpWeight;    // Convert to inverse
 
     int minInputCols, maxInputCols, minInputRows, maxInputRows; // Smallest and largest values to combine
@@ -1045,4 +1102,22 @@
         combined->variance = psImageAlloc(numCols, numRows, PS_TYPE_F32);
         combinedVariance = combined->variance;
+    }
+
+    psImage *exp = NULL, *expnum = NULL, *expweight = NULL; // Exposure map and exposure number
+    if (expmaps) {
+        if (!expmaps->image) {
+            expmaps->image = psImageAlloc(numCols, numRows, PS_TYPE_F32);
+        }
+        exp = expmaps->image;
+
+        if (!expmaps->mask) {
+            expmaps->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK);
+        }
+        expnum = expmaps->mask;
+
+        if (!expmaps->variance) {
+            expmaps->variance = psImageAlloc(numCols, numRows, PS_TYPE_F32);
+        }
+        expweight = expmaps->variance;
     }
 
@@ -1083,6 +1158,7 @@
             bool suspect;               // Suspect pixels in stack?
             combineExtract(&num, &suspect, buffer, combinedImage, combinedMask, combinedVariance,
-                           input, weights, addVariance, reject, x, y, maskVal, maskSuspect);
-            combinePixels(combinedImage, combinedMask, combinedVariance, num, buffer, x, y, bad, safe);
+                           input, weights, exps, addVariance, reject, x, y, maskVal, maskSuspect);
+            combinePixels(combinedImage, combinedMask, combinedVariance, exp, expnum, expweight,
+                          num, buffer, x, y, bad, safe, totalExpWeight);
 
             if (iter > 0) {
Index: trunk/psastro/src/psastroLoadRefstars.c
===================================================================
--- trunk/psastro/src/psastroLoadRefstars.c	(revision 27408)
+++ trunk/psastro/src/psastroLoadRefstars.c	(revision 27417)
@@ -1,5 +1,5 @@
 /** @file psastroLoadRefstars.c
  *
- *  @brief 
+ *  @brief
  *
  *  @ingroup libpsastro
@@ -59,19 +59,19 @@
     psMetadata *catdir_folder = psMetadataLookupMetadata(&status, catdirs, catdir_recipe);
     if (catdir_folder) {
-	// randomly choose one of the entries
-	psLogMsg ("psastro", 3, "choosing catdir_folder\n");
-	int nEntry = catdir_folder->list->n;
-
-	psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS);  
-	double frnd = psRandomUniform(rng);
-	int entry = PS_MIN(nEntry - 1, PS_MAX(0, nEntry * frnd));
-	psFree(rng);
-
-	psMetadataItem *item = psListGet(catdir_folder->list, entry);
-	if (item->type != PS_DATA_STRING) {
-	    psError(PSASTRO_ERR_CONFIG, true, "Invalid entry in PSASTRO.CATDIR folder: %s\n", item->name);
-	    return false;
-	}
-	catdir_virtual = item->data.str;
+        // randomly choose one of the entries
+        psLogMsg ("psastro", 3, "choosing catdir_folder\n");
+        int nEntry = catdir_folder->list->n;
+
+        psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS);
+        double frnd = psRandomUniform(rng);
+        int entry = PS_MIN(nEntry - 1, PS_MAX(0, nEntry * frnd));
+        psFree(rng);
+
+        psMetadataItem *item = psListGet(catdir_folder->list, entry);
+        if (item->type != PS_DATA_STRING) {
+            psError(PSASTRO_ERR_CONFIG, true, "Invalid entry in PSASTRO.CATDIR folder: %s\n", item->name);
+            return false;
+        }
+        catdir_virtual = item->data.str;
     }
 
@@ -133,4 +133,6 @@
     psTrace ("psastro", 3, "%s\n", getstarCommand);
 
+    psLogMsg("psastro", PS_LOG_INFO, "getstar command: %s", getstarCommand);
+
     // XXX use psPipe: catch stderr, stdout, allow for Nsec timeout...
     // use fork to add timeout capability
@@ -160,6 +162,6 @@
       // assert (outfile);
       // for (int nn = 0; nn < refstars->n; nn++) {
-      // 	  pmAstromObj *ref = refstars->data[nn];
-      // 	  fprintf (outfile, "%lf %lf\n", ref->sky->r*PS_DEG_RAD, ref->sky->d*PS_DEG_RAD);
+      //          pmAstromObj *ref = refstars->data[nn];
+      //          fprintf (outfile, "%lf %lf\n", ref->sky->r*PS_DEG_RAD, ref->sky->d*PS_DEG_RAD);
       // }
       // fclose (outfile);
@@ -217,10 +219,10 @@
             ref->sky->d   = RAD_DEG*psMetadataLookupF32 (&status, row, "DEC");
             ref->Mag      = 0.001*psMetadataLookupS32 (&status, row, "MAG");  // ELIXIR uses millimags
-	    ref->Color    = 0.0;
+            ref->Color    = 0.0;
         } else {
             ref->sky->r   = RAD_DEG*psMetadataLookupF64 (&status, row, "RA");
             ref->sky->d   = RAD_DEG*psMetadataLookupF64 (&status, row, "DEC");
             ref->Mag      = psMetadataLookupF32 (&status, row, "MAG"); // PANSTARRS uses mags
-	    ref->Color    = 0.0;
+            ref->Color    = 0.0;
         }
 
@@ -259,10 +261,10 @@
         float MagC1   = psMetadataLookupF32 (&status, row, "MAG_C1");
         float MagC2   = psMetadataLookupF32 (&status, row, "MAG_C2");
-	if (!isnan(MagC1) && !isnan(MagC2)) {
-	    ref->Color = MagC1 - MagC2;
-	} else {
-	    // XXX save the color and the slope in the table header?
-	    ref->Color = 0.0;
-	}
+        if (!isnan(MagC1) && !isnan(MagC2)) {
+            ref->Color = MagC1 - MagC2;
+        } else {
+            // XXX save the color and the slope in the table header?
+            ref->Color = 0.0;
+        }
 
         // XXX VERY temporary hack to avoid M31 bulge
Index: trunk/psconfig/pscheckperl
===================================================================
--- trunk/psconfig/pscheckperl	(revision 27408)
+++ trunk/psconfig/pscheckperl	(revision 27417)
@@ -87,6 +87,6 @@
     $Nvalue = ($N, $module, $tarball, $modver, $buildopts, $prompts) = split (" ", $line);
     if ($Nvalue < 6) {
-	print "Error in perl module config line $line\n";
-	exit 1;
+        print "Error in perl module config line $line\n";
+        exit 1;
     }
     # print "N: $N, module: $module, tarball: $tarball, modver: $modver, buildopts: $buildopts, prompts: $prompts\n";
@@ -127,5 +127,5 @@
     if ($prompts eq "NONE") { $prompts = ""; }
 
-    if (-e "Build.PL" and $module ne "Params::Validate") {
+    if (-e "Build.PL" and $module ne "Params::Validate" and $module ne "DateTime::TimeZone") {
         # vsystem("perl Build.PL --install_path lib=$perldir ");
         vsystem("perl Build.PL --install_base $prefix $buildopts");
Index: trunk/psconfig/tagsets/ipp-2.9.perl
===================================================================
--- trunk/psconfig/tagsets/ipp-2.9.perl	(revision 27408)
+++ trunk/psconfig/tagsets/ipp-2.9.perl	(revision 27417)
@@ -6,93 +6,94 @@
 # a Version of 0 is required if no specific version is desired                                 options   responses
   00    Getopt::Long                   Getopt-Long-2.36.tar.gz                  2.3            NONE      n
-  00    Module::Build                  Module-Build-0.2806.tar.gz               0.2806	       NONE      NONE # special comment here
-  01    ExtUtils::MakeMaker            ExtUtils-MakeMaker-6.54.tar.gz           0	       NONE      NONE 
-  02a   Attribute::Handlers            Attribute-Handlers-0.87.tar.gz           0.79	       NONE      NONE 
-  02    Params::Validate               Params-Validate-0.92.tar.gz              0.92	       NONE      NONE 
-# 02    Apache::Test                   Apache-Test-1.29.tar.gz                  1.29	       NONE      NONE 
-  03    DateTime::TimeZone             DateTime-TimeZone-0.59.tar.gz            0	       NONE      NONE 
-  04    DateTime::Locale               DateTime-Locale-0.33.tar.gz              0	       NONE      NONE 
-  05    Time::Local                    Time-Local-1.17.tar.gz                   0	       NONE      NONE 
-  06    DateTime                       DateTime-0.36.tar.gz                     0	       NONE      NONE 
-  07    MIME::Base64                   MIME-Base64-3.07.tar.gz                  0	       NONE      NONE 
-  08    IO::Compress::Base             IO-Compress-Base-2.003.tar.gz            0	       NONE      NONE 
-  09    Compress::Raw::Zlib            Compress-Raw-Zlib-2.003.tar.gz           0	       NONE      NONE 
-  10    Class::Factory::Util           Class-Factory-Util-1.6.tar.gz            0	       NONE      NONE 
-  11    DateTime::Format::Strptime     DateTime-Format-Strptime-1.0700.tar.gz   0	       NONE      NONE 
-  12    Net::Domain::TLD               Net-Domain-TLD-1.65.tar.gz               0	       NONE      NONE 
-  13    Sub::Uplevel                   Sub-Uplevel-0.14.tar.gz                  0	       NONE      NONE 
-  14    HTML::Tagset                   HTML-Tagset-3.10.tar.gz                  0	       NONE      NONE 
-  15    Digest                         Digest-1.15.tar.gz                       0	       NONE      NONE 
-  16    IO::Compress::Zlib::Extra      IO-Compress-Zlib-2.003.tar.gz            0	       NONE      NONE 
-  17    version                        version-0.70.tar.gz                      0	       NONE      NONE 
-  18    Text::Balanced                 Text-Balanced-v2.0.0.tar.gz              0	       NONE      NONE 
-  19    DateTime::Format::Builder      DateTime-Format-Builder-0.7807.tar.gz    0	       NONE      NONE 
-  20    ExtUtils::Manifest             ExtUtils-Manifest-1.51.tar.gz            0	       NONE      NONE 
-  21    URI                            URI-1.35.tar.gz                          1.30	       NONE      NONE 
-  22    Data::Validate::Domain         Data-Validate-Domain-0.05.tar.gz         0	       NONE      NONE 
-  23    Test::Exception                Test-Exception-0.24.tar.gz               0	       NONE      NONE 
-  24    Tree::DAG_Node                 Tree-DAG_Node-1.05.tar.gz                0	       NONE      NONE 
-  25    Array::Compare                 Array-Compare-1.13.tar.gz                0	       NONE      NONE 
-  26    HTML::Parser                   HTML-Parser-3.56.tar.gz                  0	       NONE      NONE 
-  27    Digest::MD5                    Digest-MD5-2.36.tar.gz                   0	       NONE      NONE 
+  00    Module::Build                  Module-Build-0.2806.tar.gz               0.2806         NONE      NONE # special comment here
+  01    ExtUtils::MakeMaker            ExtUtils-MakeMaker-6.54.tar.gz           0              NONE      NONE
+  02a   Attribute::Handlers            Attribute-Handlers-0.87.tar.gz           0.79           NONE      NONE
+  02    Params::Validate               Params-Validate-0.92.tar.gz              0.92           NONE      NONE
+# 02    Apache::Test                   Apache-Test-1.29.tar.gz                  1.29           NONE      NONE
+  03a   Class::Singleton               Class-Singleton-1.4.tar.gz               0              NONE      NONE
+  03    DateTime::TimeZone             DateTime-TimeZone-0.59.tar.gz            0              NONE      NONE
+  04    DateTime::Locale               DateTime-Locale-0.33.tar.gz              0              NONE      NONE
+  05    Time::Local                    Time-Local-1.17.tar.gz                   0              NONE      NONE
+  06    DateTime                       DateTime-0.36.tar.gz                     0              NONE      NONE
+  07    MIME::Base64                   MIME-Base64-3.07.tar.gz                  0              NONE      NONE
+  08    IO::Compress::Base             IO-Compress-Base-2.003.tar.gz            0              NONE      NONE
+  09    Compress::Raw::Zlib            Compress-Raw-Zlib-2.003.tar.gz           0              NONE      NONE
+  10    Class::Factory::Util           Class-Factory-Util-1.6.tar.gz            0              NONE      NONE
+  11    DateTime::Format::Strptime     DateTime-Format-Strptime-1.0700.tar.gz   0              NONE      NONE
+  12    Net::Domain::TLD               Net-Domain-TLD-1.65.tar.gz               0              NONE      NONE
+  13    Sub::Uplevel                   Sub-Uplevel-0.14.tar.gz                  0              NONE      NONE
+  14    HTML::Tagset                   HTML-Tagset-3.10.tar.gz                  0              NONE      NONE
+  15    Digest                         Digest-1.15.tar.gz                       0              NONE      NONE
+  16    IO::Compress::Zlib::Extra      IO-Compress-Zlib-2.003.tar.gz            0              NONE      NONE
+  17    version                        version-0.70.tar.gz                      0              NONE      NONE
+  18    Text::Balanced                 Text-Balanced-v2.0.0.tar.gz              0              NONE      NONE
+  19    DateTime::Format::Builder      DateTime-Format-Builder-0.7807.tar.gz    0              NONE      NONE
+  20    ExtUtils::Manifest             ExtUtils-Manifest-1.51.tar.gz            0              NONE      NONE
+  21    URI                            URI-1.35.tar.gz                          1.30           NONE      NONE
+  22    Data::Validate::Domain         Data-Validate-Domain-0.05.tar.gz         0              NONE      NONE
+  23    Test::Exception                Test-Exception-0.24.tar.gz               0              NONE      NONE
+  24    Tree::DAG_Node                 Tree-DAG_Node-1.05.tar.gz                0              NONE      NONE
+  25    Array::Compare                 Array-Compare-1.13.tar.gz                0              NONE      NONE
+  26    HTML::Parser                   HTML-Parser-3.56.tar.gz                  0              NONE      NONE
+  27    Digest::MD5                    Digest-MD5-2.36.tar.gz                   0              NONE      NONE
   28    Net::FTP                       libnet-1.19.tar.gz                       0              NONE      n
-  29    Compress::Zlib                 Compress-Zlib-2.003.tar.gz               0	       NONE      NONE 
-  30    Locale::Maketext::Simple       Locale-Maketext-Simple-0.18.tar.gz       0	       NONE      NONE 
-  31    Parse::RecDescent              Parse-RecDescent-1.94.tar.gz             1.94	       NONE      NONE 
-  32    Class::Accessor                Class-Accessor-0.30.tar.gz               0.19	       NONE      NONE 
-  33    DateTime::Format::ISO8601      DateTime-Format-ISO8601-0.06.tar.gz      0.06	       NONE      NONE 
-  34    CGI                            CGI.pm-3.25.tar.gz                       3	       NONE      NONE 
-  35    Test::Cmd                      Test-Cmd-1.05.tar.gz                     1.05	       NONE      NONE 
-  36    Net::HTTPServer                Net-HTTPServer-1.1.1.tar.gz              1.1.1	       NONE      NONE 
-  37    LWP                            libwww-perl-5.805.tar.gz                 0	       NONE      NONE 
-  38    Digest::MD5::File              Digest-MD5-File-0.05.tar.gz              0.03	       NONE      NONE 
-  39    File::Temp                     File-Temp-0.18.tar.gz                    0.16	       NONE      NONE 
-  40    Data::Validate::URI            Data-Validate-URI-0.01.tar.gz            0.01	       NONE      NONE 
-  41    Test::Warn                     Test-Warn-0.08.tar.gz                    0	       NONE      NONE 
+  29    Compress::Zlib                 Compress-Zlib-2.003.tar.gz               0              NONE      NONE
+  30    Locale::Maketext::Simple       Locale-Maketext-Simple-0.18.tar.gz       0              NONE      NONE
+  31    Parse::RecDescent              Parse-RecDescent-1.94.tar.gz             1.94           NONE      NONE
+  32    Class::Accessor                Class-Accessor-0.30.tar.gz               0.19           NONE      NONE
+  33    DateTime::Format::ISO8601      DateTime-Format-ISO8601-0.06.tar.gz      0.06           NONE      NONE
+  34    CGI                            CGI.pm-3.25.tar.gz                       3              NONE      NONE
+  35    Test::Cmd                      Test-Cmd-1.05.tar.gz                     1.05           NONE      NONE
+  36    Net::HTTPServer                Net-HTTPServer-1.1.1.tar.gz              1.1.1          NONE      NONE
+  37    LWP                            libwww-perl-5.805.tar.gz                 0              NONE      NONE
+  38    Digest::MD5::File              Digest-MD5-File-0.05.tar.gz              0.03           NONE      NONE
+  39    File::Temp                     File-Temp-0.18.tar.gz                    0.16           NONE      NONE
+  40    Data::Validate::URI            Data-Validate-URI-0.01.tar.gz            0.01           NONE      NONE
+  41    Test::Warn                     Test-Warn-0.08.tar.gz                    0              NONE      NONE
   42    YAML                           YAML-0.62.tar.gz                         0.58           NONE      y
-  43    Module::Load                   Module-Load-0.10.tar.gz                  0	       NONE      NONE 
-  44    Params::Check                  Params-Check-0.25.tar.gz                 0	       NONE      NONE 
+  43    Module::Load                   Module-Load-0.10.tar.gz                  0              NONE      NONE
+  44    Params::Check                  Params-Check-0.25.tar.gz                 0              NONE      NONE
   45    Template                       Template-Toolkit-2.16.tar.gz             0              NONE      n,n
-  46    Statistics::Descriptive        Statistics-Descriptive-2.6.tar.gz        2.6	       NONE      NONE 
-  47    Storable                       Storable-2.15.tar.gz                     0	       NONE      NONE 
-  48    IO::String                     IO-String-1.08.tar.gz                    0	       NONE      NONE 
-  49    Date::Parse                    TimeDate-1.16.tar.gz                     0	       NONE      NONE 
-  50    Digest::SHA1                   Digest-SHA1-2.11.tar.gz                  0	       NONE      NONE 
-  51    DB_File                        DB_File-1.814.tar.gz                     0	       NONE      NONE 
-  52    File::NFSLock                  File-NFSLock-1.20.tar.gz                 0	       NONE      NONE 
-  53    Heap                           Heap-0.71.tar.gz                         0	       NONE      NONE 
-  54    Module::Load::Conditional      Module-Load-Conditional-0.16.tar.gz      0	       NONE      NONE 
-  55    IPC::Run                       IPC-Run-0.80.tar.gz                      0	       NONE      NONE 
-  56    Cache                          Cache-2.04.tar.gz                        0	       NONE      NONE 
-  57    IPC::Cmd                       IPC-Cmd-0.36.tar.gz                      0.36	       NONE      NONE 
+  46    Statistics::Descriptive        Statistics-Descriptive-2.6.tar.gz        2.6            NONE      NONE
+  47    Storable                       Storable-2.15.tar.gz                     0              NONE      NONE
+  48    IO::String                     IO-String-1.08.tar.gz                    0              NONE      NONE
+  49    Date::Parse                    TimeDate-1.16.tar.gz                     0              NONE      NONE
+  50    Digest::SHA1                   Digest-SHA1-2.11.tar.gz                  0              NONE      NONE
+  51    DB_File                        DB_File-1.814.tar.gz                     0              NONE      NONE
+  52    File::NFSLock                  File-NFSLock-1.20.tar.gz                 0              NONE      NONE
+  53    Heap                           Heap-0.71.tar.gz                         0              NONE      NONE
+  54    Module::Load::Conditional      Module-Load-Conditional-0.16.tar.gz      0              NONE      NONE
+  55    IPC::Run                       IPC-Run-0.80.tar.gz                      0              NONE      NONE
+  56    Cache                          Cache-2.04.tar.gz                        0              NONE      NONE
+  57    IPC::Cmd                       IPC-Cmd-0.36.tar.gz                      0.36           NONE      NONE
   58    SOAP::Lite                     SOAP-Lite-0.69.tar.gz                    0              NONE      yes,yes,no
-  59    Log::Log4perl                  Log-Log4perl-1.10.tar.gz                 0	       NONE      NONE 
-# 60    File::ExtAttr                  File-ExtAttr-1.04.tar.gz                 0	       NONE      NONE 
-  61    Text::Glob                     Text-Glob-0.08.tar.gz                    0.08	       NONE      NONE 
-  62    Number::Compare                Number-Compare-0.01.tar.gz               0.01	       NONE      NONE 
-  63    File::Find::Rule               File-Find-Rule-0.30.tar.gz               0.30	       NONE      NONE 
-  64    Astro::FITS::CFITSIO           Astro-FITS-CFITSIO-1.05.tar.gz           0	       NONE      NONE 
-  65    Test::More                     Test-Simple-0.74.tar.gz                  0.49	       NONE      NONE 
-# 66    Apache::DBI                    Apache-DBI-1.06.tar.gz                   0	       NONE      NONE 
-# 67    Apache2::SOAP                  Apache2-SOAP-0.72.tar.gz                 0	       NONE      NONE 
-  68    Test::URI                      Test-URI-1.08.tar.gz                     0	       NONE      NONE 
-# 69    Sys::Statistics::Linux::DiskUsage Sys-Statistics-Linux-0.26.tar.gz      0	       NONE      NONE 
-# 70    Config::YAML                   Config-YAML-1.42.tar.gz                  0	       NONE      NONE 
-# 72    File::ExtAttr                  File-ExtAttr-1.07.tar.gz                 0	       NONE      NONE 
-  73    DBI                            DBI-1.601.tar.gz                         0	       NONE      NONE 
-  71    DBD::mysql                     DBD-mysql-4.006.tar.gz                   0	       NONE      NONE 
-# 74    Net::Server::Daemonize         Net-Server-0.97.tar.gz                   0.05	       NONE      NONE 
-  75    File::Path                      File-Path-2.04.tar.gz			0	       NONE      NONE 
-  76    File::Mountpoint                File-Mountpoint-0.01.tar.gz             0.01	       NONE      NONE 
-  77    Filesys::Df                     Filesys-Df-0.92.tar.gz                  0.92	       NONE      NONE 
-  78    SQL::Interp                     SQL-Interp-1.06.tar.gz                  0	       NONE      NONE 
-  79a   Mail::Send                      MailTools-2.04.tar.gz		        0	       NONE      NONE 
-  79b   Log::Dispatch::Email::MailSend  Log-Dispatch-2.22.tar.gz		0	       NONE      NONE 
-  80    Abstract::Meta::Class          Abstract-Meta-Class-0.13.tar.gz		0	       NONE      NONE 
-  81    DBIx::Connection               DBIx-Connection-0.13.tar.gz		0	       NONE      NONE 
-  82a   Test::Pod                      Test-Pod-1.40.tar.gz                     0	       NONE      NONE 
-  82c   XML::NamespaceSupport          XML-NamespaceSupport-1.10.tar.gz         0              --skip    NONE    
+  59    Log::Log4perl                  Log-Log4perl-1.10.tar.gz                 0              NONE      NONE
+# 60    File::ExtAttr                  File-ExtAttr-1.04.tar.gz                 0              NONE      NONE
+  61    Text::Glob                     Text-Glob-0.08.tar.gz                    0.08           NONE      NONE
+  62    Number::Compare                Number-Compare-0.01.tar.gz               0.01           NONE      NONE
+  63    File::Find::Rule               File-Find-Rule-0.30.tar.gz               0.30           NONE      NONE
+  64    Astro::FITS::CFITSIO           Astro-FITS-CFITSIO-1.05.tar.gz           0              NONE      NONE
+  65    Test::More                     Test-Simple-0.74.tar.gz                  0.49           NONE      NONE
+# 66    Apache::DBI                    Apache-DBI-1.06.tar.gz                   0              NONE      NONE
+# 67    Apache2::SOAP                  Apache2-SOAP-0.72.tar.gz                 0              NONE      NONE
+  68    Test::URI                      Test-URI-1.08.tar.gz                     0              NONE      NONE
+# 69    Sys::Statistics::Linux::DiskUsage Sys-Statistics-Linux-0.26.tar.gz      0              NONE      NONE
+# 70    Config::YAML                   Config-YAML-1.42.tar.gz                  0              NONE      NONE
+# 72    File::ExtAttr                  File-ExtAttr-1.07.tar.gz                 0              NONE      NONE
+  73    DBI                            DBI-1.601.tar.gz                         0              NONE      NONE
+  71    DBD::mysql                     DBD-mysql-4.006.tar.gz                   0              NONE      NONE
+# 74    Net::Server::Daemonize         Net-Server-0.97.tar.gz                   0.05           NONE      NONE
+  75    File::Path                      File-Path-2.04.tar.gz                   0              NONE      NONE
+  76    File::Mountpoint                File-Mountpoint-0.01.tar.gz             0.01           NONE      NONE
+  77    Filesys::Df                     Filesys-Df-0.92.tar.gz                  0.92           NONE      NONE
+  78    SQL::Interp                     SQL-Interp-1.06.tar.gz                  0              NONE      NONE
+  79a   Mail::Send                      MailTools-2.04.tar.gz                   0              NONE      NONE
+  79b   Log::Dispatch::Email::MailSend  Log-Dispatch-2.22.tar.gz                0              NONE      NONE
+  80    Abstract::Meta::Class          Abstract-Meta-Class-0.13.tar.gz          0              NONE      NONE
+  81    DBIx::Connection               DBIx-Connection-0.13.tar.gz              0              NONE      NONE
+  82a   Test::Pod                      Test-Pod-1.40.tar.gz                     0              NONE      NONE
+  82c   XML::NamespaceSupport          XML-NamespaceSupport-1.10.tar.gz         0              --skip    NONE
   82b   XML::SAX                       XML-SAX-0.96.tar.gz                      0              NONE      Y
-  82d   Simple::SAX::Serializer        Simple-SAX-Serializer-0.05.tar.gz	0	       NONE      NONE 
-  83    Test::Distribution             Test-Distribution-2.00.tar.gz		0	       NONE      NONE 
-  84    Test::DBUnit                   Test-DBUnit-0.20.tar.gz                  0.20           NONE      NONE 
+  82d   Simple::SAX::Serializer        Simple-SAX-Serializer-0.05.tar.gz        0              NONE      NONE
+  83    Test::Distribution             Test-Distribution-2.00.tar.gz            0              NONE      NONE
+  84    Test::DBUnit                   Test-DBUnit-0.20.tar.gz                  0.20           NONE      NONE
