Index: trunk/psModules/src/objects/pmPSF_IO.c
===================================================================
--- trunk/psModules/src/objects/pmPSF_IO.c	(revision 9563)
+++ trunk/psModules/src/objects/pmPSF_IO.c	(revision 9770)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-10-14 00:56:13 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-10-28 20:23:51 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -50,6 +50,8 @@
     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_MODEL_NPAR", PS_DATA_S32, "PSF model parameter count", nPar);
 
-    for (int i = 0; i < nPar - 4; i++) {
-        psPolynomial2D *poly = psf->params->data[i];
+    for (int i = 0; i < nPar; i++) {
+        psPolynomial2D *poly = psf->params_NEW->data[i];
+        if (poly == NULL)
+            continue;
         psPolynomial2DtoMetadata (metadata, poly, "PSF_PAR%02d", i);
     }
@@ -87,10 +89,14 @@
         psAbort ("read PSF" , "mismatch model par count");
 
-    for (int i = 0; i < nPar - 4; i++) {
+    // un-fitted terms, not in the Metadata, are left NULL
+    // XXX add a double-check of the expected number?
+    for (int i = 0; i < nPar; i++) {
         sprintf (keyword, "PSF_PAR%02d", i);
         psMetadata *folder = psMetadataLookupPtr (&status, metadata, keyword);
+        if (!status)
+            continue;
         psPolynomial2D *poly = psPolynomial2DfromMetadata (folder);
-        psFree (psf->params->data[i]);
-        psf->params->data[i] = poly;
+        psFree (psf->params_NEW->data[i]);
+        psf->params_NEW->data[i] = poly;
     }
     sprintf (keyword, "APTREND");
