Index: /tags/ipp-20120802/psphot/src/psphotSourceStats.c
===================================================================
--- /tags/ipp-20120802/psphot/src/psphotSourceStats.c	(revision 34321)
+++ /tags/ipp-20120802/psphot/src/psphotSourceStats.c	(revision 34322)
@@ -524,7 +524,5 @@
     # define NSIGMA 8
     // moved to config file
-    // float sigma[NSIGMA]  = {1.0, 2.0, 3.0, 4.5, 6.0, 9.0, 12.0, 18.0};
-    psVector  *sigmavec = psMetadataLookupPtr (&status, recipe, "PSF.SIGMA.VALUES"); psAssert(status, "missing PSF.SIGMA.VALUES");
-    psAssert(sigmavec->n <= NSIGMA, "too many sigma values in recipe %ld maximum is %d", sigmavec->n, NSIGMA);
+    psVector  *sigmavec = psMetadataLookupPtr (&status, recipe, "PSF.SIGMA.VALUES"); 
 
     float sigma[NSIGMA];
@@ -533,7 +531,20 @@
     int   Nout[NSIGMA]; // number of stars found in clump : use this to control the number of regions measured by psphotRoughClass
 
-    // copy the data from vector to local array to keep the code below easier to read
-    for (int i = 0 ; i < sigmavec->n; i++) {
-        sigma[i] = sigmavec->data.F32[i];
+    int nsigma;
+    if (sigmavec) {
+        psAssert(sigmavec->n <= NSIGMA, "too many sigma values in recipe %ld maximum is %d", sigmavec->n, NSIGMA);
+        // copy the data from vector to local array to keep the code below easier to read
+        for (int i = 0 ; i < sigmavec->n; i++) {
+            sigma[i] = sigmavec->data.F32[i];
+        }
+        nsigma = sigmavec->n;
+    } else {
+        // requiring this causes updates to pop an assertion
+        //  psAssert(status, "missing PSF.SIGMA.VALUES");
+        float defaultsigma[NSIGMA]  = {1.0, 2.0, 3.0, 4.5, 6.0, 9.0, 12.0, 18.0};
+        for (int i = 0 ; i < NSIGMA; i++) {
+            sigma[i] = defaultsigma[i];
+        }
+        nsigma = NSIGMA;
     }
 
@@ -542,5 +553,5 @@
 
     // loop over radii:
-    for (int i = 0; i < sigmavec->n; i++) {
+    for (int i = 0; i < nsigma; i++) {
 
         // XXX move max source number to config
@@ -599,12 +610,12 @@
     float minS = Sout[0];
     float maxS = Sout[0];
-    for (int i = 0; i < sigmavec->n; i++) {
+    for (int i = 0; i < nsigma; i++) {
         minS = PS_MIN(Sout[i], minS);
         maxS = PS_MAX(Sout[i], maxS);
     }
-    if (minS > 0.65) Sigma = sigma[sigmavec->n-1];
+    if (minS > 0.65) Sigma = sigma[nsigma-1];
     if (maxS < 0.65) Sigma = sigma[0];
 
-    for (int i = 0; i < sigmavec->n - 1 && isnan(Sigma); i++) {
+    for (int i = 0; i < nsigma - 1 && isnan(Sigma); i++) {
         if (!isfinite(Sout[i]) || !isfinite(Sout[i+1])) continue;
         if ((Sout[i] > 0.65) && (Sout[i+1] > 0.65)) continue;
