Index: /trunk/psLib/src/fits/psFitsHeader.c
===================================================================
--- /trunk/psLib/src/fits/psFitsHeader.c	(revision 7243)
+++ /trunk/psLib/src/fits/psFitsHeader.c	(revision 7244)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-05-27 02:09:47 $
+ *  @version $Revision: 1.16 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-05-30 22:11:51 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -17,4 +17,5 @@
 #include "psFits.h"
 #include "string.h"
+#include "strings.h"
 #include "psError.h"
 #include "psErrorText.h"
@@ -109,6 +110,19 @@
             break;
         case 'I': // short int.
-            success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_S16 | dupFlag, keyComment,
-                                    (psS16)atoi(keyValue));
+            // This is the default type that cfitsio reports whenever it doesn't know what it is.
+            // Trap NAN, INF and -INF, which cfitsio doesn't handle.
+            if (strncasecmp(keyValue, "nan", 3) == 0) {
+                success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment,
+                                        (psF32)NAN);
+            } else if (strncasecmp(keyValue, "inf", 3) == 0) {
+                success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment,
+                                        (psF32)INFINITY);
+            } else if (strncasecmp(keyValue, "-inf", 4) == 0) {
+                success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment,
+                                        (psF32)-INFINITY);
+            } else {
+                success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_S16 | dupFlag, keyComment,
+                                        (psS16)atoi(keyValue));
+            }
             break;
         case 'J': // int.
