Index: trunk/ippToPsps/config/detection/map.xml
===================================================================
--- trunk/ippToPsps/config/detection/map.xml	(revision 28550)
+++ trunk/ippToPsps/config/detection/map.xml	(revision 28556)
@@ -91,16 +91,15 @@
 
  <table name="Detection">
-  <map ippColumn="2" ippName="X_PSF" ippType="TFLOAT" pspsName="xPos" />
-  <map ippColumn="3" ippName="Y_PSF" ippType="TFLOAT" pspsName="yPos" />
-  <map ippColumn="4" ippName="X_PSF_SIG" ippType="TFLOAT" pspsName="xPosErr" />
-  <map ippColumn="5" ippName="Y_PSF_SIG" ippType="TFLOAT" pspsName="yPosErr" />
-  <map ippColumn="22" ippName="PSF_MAJOR" ippType="TFLOAT" pspsName="psfWidMajor" />
-  <map ippColumn="23" ippName="PSF_MINOR" ippType="TFLOAT" pspsName="psfWidMinor" />
-  <map ippColumn="24" ippName="PSF_THETA" ippType="TFLOAT" pspsName="psfTheta" />
-  <map ippColumn="25" ippName="PSF_QF" ippType="TFLOAT" pspsName="psfCf" />
-  <map ippColumn="17" ippName="SKY" ippType="TFLOAT" pspsName="sky" />
-  <map ippColumn="18" ippName="SKY_SIGMA" ippType="TFLOAT" pspsName="skyErr" />
-  <map ippColumn="21" ippName="EXT_NSIGMA" ippType="TFLOAT" pspsName="sgSep" />
-  <map ippColumn="31" ippName="FLAGS" ippType="TLONG" pspsName="infoFlag" />
+  <map ippName="X_PSF" ippType="TFLOAT" pspsName="xPos" />
+  <map ippName="Y_PSF" ippType="TFLOAT" pspsName="yPos" />
+  <map ippName="X_PSF_SIG" ippType="TFLOAT" pspsName="xPosErr" />
+  <map ippName="Y_PSF_SIG" ippType="TFLOAT" pspsName="yPosErr" />
+  <map ippName="PSF_MAJOR" ippType="TFLOAT" pspsName="psfWidMajor" />
+  <map ippName="PSF_MINOR" ippType="TFLOAT" pspsName="psfWidMinor" />
+  <map ippName="PSF_THETA" ippType="TFLOAT" pspsName="psfTheta" />
+  <map ippName="PSF_QF" ippType="TFLOAT" pspsName="psfCf" />
+  <map ippName="SKY" ippType="TFLOAT" pspsName="sky" />
+  <map ippName="SKY_SIGMA" ippType="TFLOAT" pspsName="skyErr" />
+  <map ippName="EXT_NSIGMA" ippType="TFLOAT" pspsName="sgSep" />
  </table>
 
Index: trunk/ippToPsps/config/diff/map.xml
===================================================================
--- trunk/ippToPsps/config/diff/map.xml	(revision 28550)
+++ trunk/ippToPsps/config/diff/map.xml	(revision 28556)
@@ -22,20 +22,20 @@
 
  <table name="StackHighSigDelta">
-  <map ippColumn="2" ippName="X_PSF" ippType="TFLOAT" pspsName="xPos" />
-  <map ippColumn="3" ippName="Y_PSF" ippType="TFLOAT" pspsName="yPos" />
-  <map ippColumn="4" ippName="X_PSF_SIG" ippType="TFLOAT" pspsName="xPosErr" />
-  <map ippColumn="5" ippName="Y_PSF_SIG" ippType="TFLOAT" pspsName="yPosErr" />
-  <map ippColumn="8" ippName="PSF_INST_MAG" ippType="TFLOAT" pspsName="instMag" />
-  <map ippColumn="9" ippName="PSF_INST_MAG_SIG" ippType="TFLOAT" pspsName="instMagErr" />
-  <map ippColumn="12" ippName="PEAK_FLUX_AS_MAG" ippType="TFLOAT" pspsName="peakFluxMag" />
-  <map ippColumn="22" ippName="PSF_MAJOR" ippType="TFLOAT" pspsName="psfWidMajor" />
-  <map ippColumn="23" ippName="PSF_MINOR" ippType="TFLOAT" pspsName="psfWidMinor" />
-  <map ippColumn="24" ippName="PSF_THETA" ippType="TFLOAT" pspsName="psfTheta" />
-  <map ippColumn="25" ippName="PSF_QF" ippType="TFLOAT" pspsName="psfCf" />
-  <map ippColumn="15" ippName="RA_PSF" ippType="TDOUBLE" pspsName="ra" />
-  <map ippColumn="16" ippName="DEC_PSF" ippType="TDOUBLE" pspsName="dec" />
-  <map ippColumn="17" ippName="SKY" ippType="TFLOAT" pspsName="sky" />
-  <map ippColumn="18" ippName="SKY_SIGMA" ippType="TFLOAT" pspsName="skyErr" />
-  <map ippColumn="21" ippName="EXT_NSIGMA" ippType="TFLOAT" pspsName="sgSep" />
+  <map ippName="X_PSF" ippType="TFLOAT" pspsName="xPos" />
+  <map ippName="Y_PSF" ippType="TFLOAT" pspsName="yPos" />
+  <map ippName="X_PSF_SIG" ippType="TFLOAT" pspsName="xPosErr" />
+  <map ippName="Y_PSF_SIG" ippType="TFLOAT" pspsName="yPosErr" />
+  <map ippName="PSF_INST_MAG" ippType="TFLOAT" pspsName="instMag" />
+  <map ippName="PSF_INST_MAG_SIG" ippType="TFLOAT" pspsName="instMagErr" />
+  <map ippName="PEAK_FLUX_AS_MAG" ippType="TFLOAT" pspsName="peakFluxMag" />
+  <map ippName="PSF_MAJOR" ippType="TFLOAT" pspsName="psfWidMajor" />
+  <map ippName="PSF_MINOR" ippType="TFLOAT" pspsName="psfWidMinor" />
+  <map ippName="PSF_THETA" ippType="TFLOAT" pspsName="psfTheta" />
+  <map ippName="PSF_QF" ippType="TFLOAT" pspsName="psfCf" />
+  <map ippName="RA_PSF" ippType="TDOUBLE" pspsName="ra" />
+  <map ippName="DEC_PSF" ippType="TDOUBLE" pspsName="dec" />
+  <map ippName="SKY" ippType="TFLOAT" pspsName="sky" />
+  <map ippName="SKY_SIGMA" ippType="TFLOAT" pspsName="skyErr" />
+  <map ippName="EXT_NSIGMA" ippType="TFLOAT" pspsName="sgSep" />
  </table>
 
Index: trunk/ippToPsps/config/test/map.xml
===================================================================
--- trunk/ippToPsps/config/test/map.xml	(revision 28550)
+++ trunk/ippToPsps/config/test/map.xml	(revision 28556)
@@ -83,16 +83,16 @@
 
  <table name="Detection">
-  <map ippColumn="2" ippName="X_PSF" ippType="TFLOAT" pspsName="xPos" />
-  <map ippColumn="3" ippName="Y_PSF" ippType="TFLOAT" pspsName="yPos" />
-  <map ippColumn="4" ippName="X_PSF_SIG" ippType="TFLOAT" pspsName="xPosErr" />
-  <map ippColumn="5" ippName="Y_PSF_SIG" ippType="TFLOAT" pspsName="yPosErr" />
-  <map ippColumn="15" ippName="RA_PSF" ippType="TFLOAT" pspsName="ippRa" />
-  <map ippColumn="16" ippName="DEC_PSF" ippType="TFLOAT" pspsName="ippDec" />
-  <map ippColumn="22" ippName="PSF_MAJOR" ippType="TFLOAT" pspsName="psfWidMajor" />
-  <map ippColumn="23" ippName="PSF_MINOR" ippType="TFLOAT" pspsName="psfWidMinor" />
-  <map ippColumn="24" ippName="PSF_THETA" ippType="TFLOAT" pspsName="psfTheta" />
-  <map ippColumn="25" ippName="PSF_QF" ippType="TFLOAT" pspsName="psfCf" />
-  <map ippColumn="17" ippName="SKY" ippType="TFLOAT" pspsName="sky" />
-  <map ippColumn="18" ippName="SKY_SIGMA" ippType="TFLOAT" pspsName="skyErr" />
+  <map ippName="X_PSF" ippType="TFLOAT" pspsName="xPos" />
+  <map ippName="Y_PSF" ippType="TFLOAT" pspsName="yPos" />
+  <map ippName="X_PSF_SIG" ippType="TFLOAT" pspsName="xPosErr" />
+  <map ippName="Y_PSF_SIG" ippType="TFLOAT" pspsName="yPosErr" />
+  <map ippName="RA_PSF" ippType="TFLOAT" pspsName="ippRa" />
+  <map ippName="DEC_PSF" ippType="TFLOAT" pspsName="ippDec" />
+  <map ippName="PSF_MAJOR" ippType="TFLOAT" pspsName="psfWidMajor" />
+  <map ippName="PSF_MINOR" ippType="TFLOAT" pspsName="psfWidMinor" />
+  <map ippName="PSF_THETA" ippType="TFLOAT" pspsName="psfTheta" />
+  <map ippName="PSF_QF" ippType="TFLOAT" pspsName="psfCf" />
+  <map ippName="SKY" ippType="TFLOAT" pspsName="sky" />
+  <map ippName="SKY_SIGMA" ippType="TFLOAT" pspsName="skyErr" />
  </table>
 
Index: trunk/ippToPsps/src/ippToPspsConfig.c
===================================================================
--- trunk/ippToPsps/src/ippToPspsConfig.c	(revision 28550)
+++ trunk/ippToPsps/src/ippToPspsConfig.c	(revision 28556)
@@ -616,11 +616,7 @@
                 column->ippType = ippToPsps_GetDataType(buffer); 
 
-                // IPP column
-                ippToPspsConfig_getAttribute(node, "ippColumn", buffer);
-                column->ippColNum = atoi(buffer);
-
                 column->usingDefault = false;
 
-                //psLogMsg("ippToPsps", PS_LOG_INFO, "...mapping PSPS:'%s' to '%s'", column->pspsName, column->ippName );
+                //psLogMsg("ippToPsps", PS_LOG_INFO, "...mapping PSPS:'%s' to '%s' '%d'", column->pspsName, column->ippName, column->ippColNum );
             }
         }
@@ -734,5 +730,16 @@
     int readStatus = 0;
     int writeStatus = 0;
-
+   
+    // first loop round all columns and get IPP col numbers for provided column names
+    if(!fromHeader) {
+
+        for (uint32_t i=0; i<table->numOfColumns; i++) {
+
+            if (strlen(table->columns[i].ippName) < 1) continue;
+            readStatus = 0;
+            fits_get_colnum(fitsIn, CASESEN, table->columns[i].ippName, &table->columns[i].ippColNum, &readStatus);
+            if (readStatus) psError(PS_ERR_IO, false, "%d Unable to read col num for '%s' '%s' %d", i, table->columns[i].pspsName, table->columns[i].ippName, table->columns[i].ippColNum);
+        }
+    }
 
     int col;
