Index: /trunk/psModules/src/camera/pmFPAfileIO.c
===================================================================
--- /trunk/psModules/src/camera/pmFPAfileIO.c	(revision 23243)
+++ /trunk/psModules/src/camera/pmFPAfileIO.c	(revision 23244)
@@ -22,5 +22,4 @@
 #include "pmFPARead.h"
 #include "pmFPAWrite.h"
-#include "pmFPAfileIO.h"
 #include "pmFPAfileFitsIO.h"
 #include "pmSpan.h"
@@ -44,4 +43,7 @@
 #include "pmSubtractionIO.h"
 #include "pmConcepts.h"
+#include "pmConfigRun.h"
+
+#include "pmFPAfileIO.h"
 
 // attempt create, read, write, close, or free pmFPAfiles available in files files are
@@ -164,4 +166,9 @@
     }
 
+    if (!pmConfigRunFileAdd(config, file)) {
+        psError(PS_ERR_UNKNOWN, false, "Unable to add file to run-time information");
+        return false;
+    }
+
     // select a reading method
     bool status = true;
@@ -412,4 +419,9 @@
             return false;
         }
+    }
+
+    if (!pmConfigRunFileAdd(config, file)) {
+        psError(PS_ERR_UNKNOWN, false, "Unable to add file to run-time information");
+        return false;
     }
 
Index: /trunk/psModules/src/config/pmConfigRun.c
===================================================================
--- /trunk/psModules/src/config/pmConfigRun.c	(revision 23243)
+++ /trunk/psModules/src/config/pmConfigRun.c	(revision 23244)
@@ -4,4 +4,5 @@
 
 #include <stdio.h>
+#include <string.h>
 #include <pslib.h>
 
@@ -25,4 +26,5 @@
         elem = psMetadataAlloc();
         psMetadataAddMetadata(md, PS_LIST_HEAD, name, 0, comment, elem);
+        psFree(elem);                   // Drop reference
     }
     return elem;
@@ -48,5 +50,23 @@
     psAssert(files, "Require list of files");
 
-    return psMetadataAddStr(files, PS_LIST_TAIL, file->name, PS_META_DUPLICATE_OK, NULL, file->filename);
+    const char *name = file->name;      // Name of symbolic file
+    const char *value = file->filename; // Value of symbolic file: the file name
+
+    psString regex = NULL;              // Regular expression for iteration
+    psStringAppend(&regex, "^%s$", name);
+    psMetadataIterator *iter = psMetadataIteratorAlloc(files, PS_LIST_HEAD, regex);
+    psFree(regex);
+    psMetadataItem *item;               // Item from iteration
+    while ((item = psMetadataGetAndIncrement(iter))) {
+        psAssert(item->type == PS_DATA_STRING, "We only put STRING types here.");
+        if (strcmp(item->data.str, value) == 0) {
+            // It's already present
+            psFree(iter);
+            return true;
+        }
+    }
+    psFree(iter);
+
+    return psMetadataAddStr(files, PS_LIST_TAIL, name, PS_META_DUPLICATE_OK, NULL, value);
 }
 
