Index: trunk/psModules/src/astrom/pmAstrometryRefstars.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryRefstars.c	(revision 17062)
+++ trunk/psModules/src/astrom/pmAstrometryRefstars.c	(revision 18601)
@@ -1,10 +1,10 @@
 /* @file  pmAstrometryRefstars.c
  * @brief Functions to write (and read?) astrometric reference stars
- * 
+ *
  * @ingroup AstroImage
  *
  * @author EAM, IfA
- * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
- * @date $Date: 2008-03-20 00:27:00 $
+ * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2008-07-17 22:38:15 $
  * Copyright 2008 Institute for Astronomy, University of Hawaii
  */
@@ -32,4 +32,5 @@
 #include "pmFPAview.h"
 #include "pmFPAfile.h"
+#include "pmFPAfileFitsIO.h"
 #include "pmAstrometryObjects.h"
 #include "pmAstrometryRefstars.h"
@@ -144,11 +145,13 @@
 }
 
-bool pmAstromRefstarsWritePHU (const pmFPAview *view, pmFPAfile *file, const pmConfig *config) { 
-
-    // output header data 
+bool pmAstromRefstarsWritePHU (const pmFPAview *view, pmFPAfile *file, pmConfig *config) {
+
+    // output header data
     psMetadata *outhead = psMetadataAlloc();
 
     // use the FPA phu to generate the PHU header
-    pmHDU *phu = file->fpa->hdu;
+    pmFPA *fpa = pmFPAfileSuitableFPA(file, view, config, false); // Suitable FPA for writing
+    pmHDU *phu = psMemIncrRefCounter(fpa->hdu);
+    psFree(fpa);
 
     // if there is no FPA PHU, this is a single header+image (extension-less) file. This could be
@@ -156,8 +159,9 @@
     // write it out as a 'blank'
     if (phu) {
-	psMetadataCopy (outhead, phu->header);
+        psMetadataCopy (outhead, phu->header);
     } else {
-	pmConfigConformHeader (outhead, file->format);
-    }
+        pmConfigConformHeader (outhead, file->format);
+    }
+    psFree(phu);
 
     psMetadataAddBool (outhead, PS_LIST_TAIL, "EXTEND", PS_META_REPLACE, "this file has extensions", true);
@@ -256,21 +260,21 @@
 
     // set the extname : we are really only allowed one entry per chip; check this here?
-    char *chiprule = psStringCopy ("{CHIP.NAME}"); 
+    char *chiprule = psStringCopy ("{CHIP.NAME}");
     char *chipname = pmFPAfileNameFromRule (chiprule, file, view);
 
     for (int i = 0; i < refstars->n; i++) {
       psMetadata *row = psMetadataAlloc ();
-		
+
       pmAstromObj *ref = refstars->data[i];
 
-      psMetadataAddF64(row,    PS_LIST_TAIL, "RA",     	PS_META_REPLACE, "degrees", PS_DEG_RAD*ref->sky->r);
-      psMetadataAddF64(row,    PS_LIST_TAIL, "DEC",    	PS_META_REPLACE, "degrees", PS_DEG_RAD*ref->sky->d);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "TP_X",   	PS_META_REPLACE, "microns", ref->TP->x);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "TP_Y",   	PS_META_REPLACE, "microns", ref->TP->y);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "FP_X",   	PS_META_REPLACE, "microns", ref->FP->x);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "FP_Y",   	PS_META_REPLACE, "microns", ref->FP->y);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "CHIP_X", 	PS_META_REPLACE, "microns", ref->chip->x);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "CHIP_Y", 	PS_META_REPLACE, "microns", ref->chip->y);
-      psMetadataAddF32(row,    PS_LIST_TAIL, "MAG",    	PS_META_REPLACE, "microns", ref->Mag);
+      psMetadataAddF64(row,    PS_LIST_TAIL, "RA",      PS_META_REPLACE, "degrees", PS_DEG_RAD*ref->sky->r);
+      psMetadataAddF64(row,    PS_LIST_TAIL, "DEC",     PS_META_REPLACE, "degrees", PS_DEG_RAD*ref->sky->d);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "TP_X",    PS_META_REPLACE, "microns", ref->TP->x);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "TP_Y",    PS_META_REPLACE, "microns", ref->TP->y);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "FP_X",    PS_META_REPLACE, "microns", ref->FP->x);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "FP_Y",    PS_META_REPLACE, "microns", ref->FP->y);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "CHIP_X",  PS_META_REPLACE, "microns", ref->chip->x);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "CHIP_Y",  PS_META_REPLACE, "microns", ref->chip->y);
+      psMetadataAddF32(row,    PS_LIST_TAIL, "MAG",     PS_META_REPLACE, "microns", ref->Mag);
       psMetadataAddF32(row,    PS_LIST_TAIL, "MAG_ERR", PS_META_REPLACE, "microns", ref->dMag);
 
@@ -281,7 +285,7 @@
         psError(PS_ERR_IO, false, "writing refstars\n");
         psFree (table);
-	psFree (header);
-	psFree (chiprule);
-	psFree (chipname);
+        psFree (header);
+        psFree (chiprule);
+        psFree (chipname);
         return false;
     }
