Index: trunk/ppMerge/src/ppMergeVersion.c
===================================================================
--- trunk/ppMerge/src/ppMergeVersion.c	(revision 23126)
+++ trunk/ppMerge/src/ppMergeVersion.c	(revision 23166)
@@ -59,32 +59,33 @@
 };
 
-void ppMergeVersionMetadata(psMetadata *metadata)
+bool ppMergeVersionHeader(psMetadata *header)
 {
-    PS_ASSERT_METADATA_NON_NULL(metadata,);
+    PS_ASSERT_METADATA_NON_NULL(header, false);
 
-    psString pslib = psLibVersionLong();///< psLib version
-    psString psmodules = psModulesVersionLong(); ///< psModules version
-    psString ppStats = ppStatsVersionLong(); ///< ppStats version
-    psString ppMerge = ppMergeVersionLong(); ///< ppMerge version
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psString history = NULL;               // History string
+    psStringAppend(&history, "ppMerge at %s", timeString);
+    psFree(timeString);
+    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, history);
+    psFree(history);
 
-    psTime *time = psTimeGetNow(PS_TIME_TAI); ///< The time now
-    psString timeString = psTimeToISO(time); ///< The time in an ISO string
-    psFree(time);
-    psString head = NULL;               ///< Head string
-    psStringAppend(&head, "ppMerge processing at %s. Component information:", timeString);
-    psFree(timeString);
+    psLibVersionHeader(header);
+    psModulesVersionHeader(header);
+    ppStatsVersionHeader(header);
 
-    psMetadataAddStr(metadata, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, head, "");
-    psMetadataAddStr(metadata, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, pslib, "");
-    psMetadataAddStr(metadata, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, psmodules, "");
-    psMetadataAddStr(metadata, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, ppStats, "");
-    psMetadataAddStr(metadata, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, ppMerge, "");
+    psString version = ppMergeVersion(); // Software version
+    psString source  = ppMergeSource();  // Software source
 
-    psFree(head);
-    psFree(pslib);
-    psFree(psmodules);
-    psFree(ppStats);
-    psFree(ppMerge);
+    psMetadataAddStr(header, PS_LIST_TAIL, "IPP.PPMERGE.VERSION", PS_META_REPLACE,
+                     "Software version", version);
+    psMetadataAddStr(header, PS_LIST_TAIL, "IPP.PPMERGE.SOURCE", PS_META_REPLACE,
+                     "S/W source", source);
 
-    return;
+    psFree(version);
+    psFree(source);
+
+    return true;
 }
+
