Index: trunk/psModules/src/config/pmConfigCamera.c
===================================================================
--- trunk/psModules/src/config/pmConfigCamera.c	(revision 21387)
+++ trunk/psModules/src/config/pmConfigCamera.c	(revision 22699)
@@ -280,14 +280,14 @@
         psMetadata *translation = psMetadataAlloc(); // The TRANSLATION --- how to read the FITS headers
 
-        psList *concepts;               // List of concepts for each level
-        psListIterator *iter;           // Iterator for concepts
-        psString name;                  // Concept name, from iteration
-
-        concepts = pmConceptsList(PM_FPA_LEVEL_FPA); // FPA-level concepts
-        iter = psListIteratorAlloc(concepts, PS_LIST_HEAD, false);
-        while ((name = psListGetAndIncrement(iter))) {
-            const char *new = skycellConceptName(name, skycellConceptsFPA, system); // Name for skycell
+        psMetadata *concepts;           // List of concepts for each level
+        psMetadataIterator *iter;       // Iterator for concepts
+        psMetadataItem *item;           // Concept specification item, from iteration
+
+        concepts = pmConceptsSpecs(PM_FPA_LEVEL_FPA); // FPA-level concepts
+        iter = psMetadataIteratorAlloc(concepts, PS_LIST_HEAD, NULL);
+        while ((item = psMetadataGetAndIncrement(iter))) {
+            const char *new = skycellConceptName(item->name, skycellConceptsFPA, system); // Name for skycell
             if (new) {
-                psMetadataAddStr(translation, PS_LIST_TAIL, name, 0, NULL, new);
+                psMetadataAddStr(translation, PS_LIST_TAIL, item->name, 0, NULL, new);
             }
         }
@@ -295,10 +295,10 @@
         psFree(concepts);
 
-        concepts = pmConceptsList(PM_FPA_LEVEL_CHIP);
-        iter = psListIteratorAlloc(concepts, PS_LIST_HEAD, false);
-        while ((name = psListGetAndIncrement(iter))) {
-            const char *new = skycellConceptName(name, skycellConceptsChip, system); // Name for skycell
+        concepts = pmConceptsSpecs(PM_FPA_LEVEL_CHIP);
+        iter = psMetadataIteratorAlloc(concepts, PS_LIST_HEAD, NULL);
+        while ((item = psMetadataGetAndIncrement(iter))) {
+            const char *new = skycellConceptName(item->name, skycellConceptsChip, system); // Name for skycell
             if (new) {
-                psMetadataAddStr(translation, PS_LIST_TAIL, name, 0, NULL, new);
+                psMetadataAddStr(translation, PS_LIST_TAIL, item->name, 0, NULL, new);
             }
         }
@@ -306,10 +306,10 @@
         psFree(concepts);
 
-        concepts = pmConceptsList(PM_FPA_LEVEL_CELL);
-        iter = psListIteratorAlloc(concepts, PS_LIST_HEAD, false);
-        while ((name = psListGetAndIncrement(iter))) {
-            const char *new = skycellConceptName(name, skycellConceptsCell, system); // Name for skycell
+        concepts = pmConceptsSpecs(PM_FPA_LEVEL_CELL);
+        iter = psMetadataIteratorAlloc(concepts, PS_LIST_HEAD, false);
+        while ((item = psMetadataGetAndIncrement(iter))) {
+            const char *new = skycellConceptName(item->name, skycellConceptsCell, system); // Name for skycell
             if (new) {
-                psMetadataAddStr(translation, PS_LIST_TAIL, name, 0, NULL, new);
+                psMetadataAddStr(translation, PS_LIST_TAIL, item->name, 0, NULL, new);
             }
         }
