Index: branches/pap/psModules/src/concepts/pmConceptsStandard.c
===================================================================
--- branches/pap/psModules/src/concepts/pmConceptsStandard.c	(revision 23948)
+++ branches/pap/psModules/src/concepts/pmConceptsStandard.c	(revision 25027)
@@ -36,9 +36,9 @@
 // Format type for time
 typedef enum {
-  TIME_FORMAT_YYYYMMDD,			// Date stored in YYYY-MM-DD order (ISO-standard)
-  TIME_FORMAT_DDMMYYYY,			// Date stored in DD-MM-YYYY order
-  TIME_FORMAT_MMDDYYYY,			// Date stored in MM-DD-YYYY order
-  TIME_FORMAT_JD,			// Date stored as JD
-  TIME_FORMAT_MJD,			// Date stored as MJD
+  TIME_FORMAT_YYYYMMDD,                 // Date stored in YYYY-MM-DD order (ISO-standard)
+  TIME_FORMAT_DDMMYYYY,                 // Date stored in DD-MM-YYYY order
+  TIME_FORMAT_MMDDYYYY,                 // Date stored in MM-DD-YYYY order
+  TIME_FORMAT_JD,                       // Date stored as JD
+  TIME_FORMAT_MJD,                      // Date stored as MJD
 } conceptTimeFormatType;
 
@@ -391,4 +391,5 @@
 }
 
+
 // FPA.RA and FPA.DEC
 psMetadataItem *p_pmConceptFormat_FPA_Coords(const psMetadataItem *concept,
@@ -410,9 +411,8 @@
     // How to interpret the coordinates
     bool mdok = true;                   // Status of MD lookup
-    psMetadata *formats = psMetadataLookupMetadata(&mdok,
-                                                   cameraFormat,
-                                                   "FORMATS");
+    psMetadata *formats = psMetadataLookupMetadata(&mdok, cameraFormat, "FORMATS");
+    bool sexagesimal = false;           // Write sexagesimal format?
     if (mdok && formats) {
-        psString format = psMetadataLookupStr(&mdok,formats, concept->name);
+        psString format = psMetadataLookupStr(&mdok, formats, concept->name);
         if (mdok && strlen(format) > 0) {
             if (strcasecmp(format, "HOURS") == 0) {
@@ -428,26 +428,36 @@
             coords /= defaultCoordScaling(concept);
         }
+
+        psString ra = psMetadataLookupStr(&mdok, formats, "FPA.RA"); // Format for RA
+        psString dec = psMetadataLookupStr(&mdok, formats, "FPA.DEC"); // Format for Dec
+        if (ra && strcasecmp(ra, "HOURS") == 0 && dec && strcasecmp(dec, "DEGREES") == 0) {
+            sexagesimal = true;
+        }
     } else {
         coords /= defaultCoordScaling(concept);
     }
 
-    // We choose to write sexagesimal format
-    int big, medium;                    // Degrees and minutes
-    float small;                        // Seconds
-    bool negative = (coords < 0);       // Are we working below zero?
-    coords = fabs(coords);
-    big = (int)abs(coords);
-    coords -= big;
-    medium = 60.0 * coords;
-    coords -= medium / 60.0;
-    small = 3600.0 * coords;
-    small = (float)((int)(small * 1000.0)) / 1000.0;
-    if (negative) {
-        big *= -1;
-    }
-    psString coordString = NULL;        // String with the coordinates in sexagesimal format
-    psStringAppend(&coordString, "%d:%02d:%06.3f", big, medium, small);
-    psMetadataItem *coordItem = psMetadataItemAllocStr(concept->name, concept->comment, coordString);
-    psFree(coordString);
+    psMetadataItem *coordItem = NULL;   // Item with coordinates, to return
+    if (sexagesimal) {
+        int big, medium;                    // Degrees and minutes
+        float small;                        // Seconds
+        bool negative = (coords < 0);       // Are we working below zero?
+        coords = fabs(coords);
+        big = (int)abs(coords);
+        coords -= big;
+        medium = 60.0 * coords;
+        coords -= medium / 60.0;
+        small = 3600.0 * coords;
+        small = (float)((int)(small * 1000.0)) / 1000.0;
+        if (negative) {
+            big *= -1;
+        }
+        psString coordString = NULL;        // String with the coordinates in sexagesimal format
+        psStringAppend(&coordString, "%d:%02d:%06.3f", big, medium, small);
+        coordItem = psMetadataItemAllocStr(concept->name, concept->comment, coordString);
+        psFree(coordString);
+    } else {
+        coordItem = psMetadataItemAllocF64(concept->name, concept->comment, coords);
+    }
 
     return coordItem;
