Index: /trunk/ppArith/src/ppArith.c
===================================================================
--- /trunk/ppArith/src/ppArith.c	(revision 23194)
+++ /trunk/ppArith/src/ppArith.c	(revision 23195)
@@ -34,4 +34,6 @@
     }
 
+    ppArithVersionPrint();
+
     if (!ppArithArguments(argc, argv, config)) {
         psErrorStackPrint(stderr, "Error reading arguments.\n");
Index: /trunk/ppArith/src/ppArith.h
===================================================================
--- /trunk/ppArith/src/ppArith.h	(revision 23194)
+++ /trunk/ppArith/src/ppArith.h	(revision 23195)
@@ -22,6 +22,6 @@
  * Parse the arguments
  */
-bool ppArithArguments(int argc, char *argv[], ///< Command-line arguments 
-                      pmConfig *config    ///< Configuration 
+bool ppArithArguments(int argc, char *argv[], ///< Command-line arguments
+                      pmConfig *config    ///< Configuration
     );
 
@@ -29,5 +29,5 @@
  * Parse the camera input
  */
-bool ppArithCamera(pmConfig *config       ///< Configuration 
+bool ppArithCamera(pmConfig *config       ///< Configuration
     );
 
@@ -35,5 +35,5 @@
  * Loop over the FPA hierarchy
  */
-bool ppArithLoop(pmConfig *config         ///< Configuration 
+bool ppArithLoop(pmConfig *config         ///< Configuration
     );
 
@@ -41,16 +41,19 @@
  * Perform arithmetic on the readout
  */
-bool ppArithReadout(pmReadout *output,  ///< Output readout 
-                    const pmReadout *input1, ///< Input readout 
-                    const pmReadout *input2, ///< Input readout 
-                    const pmConfig *config, ///< Configuration 
-                    const pmFPAview *view ///< View of readout on which to operate 
+bool ppArithReadout(pmReadout *output,  ///< Output readout
+                    const pmReadout *input1, ///< Input readout
+                    const pmReadout *input2, ///< Input readout
+                    const pmConfig *config, ///< Configuration
+                    const pmFPAview *view ///< View of readout on which to operate
     );
 
 /**
- * Put the program version information into a metadata
+ * Put the program version information into header
  */
-void ppArithVersionMetadata(psMetadata *metadata ///< Metadata to populate
+bool ppArithVersionHeader(psMetadata *header ///< Header to populate
     );
+
+/// Print version information
+void ppArithVersionPrint(void);
 
 ///@}
Index: /trunk/ppArith/src/ppArithLoop.c
===================================================================
--- /trunk/ppArith/src/ppArithLoop.c	(revision 23194)
+++ /trunk/ppArith/src/ppArithLoop.c	(revision 23195)
@@ -113,5 +113,5 @@
                     hdu->header = psMetadataAlloc();
                 }
-                ppArithVersionMetadata(hdu->header);
+                ppArithVersionHeader(hdu->header);
                 lastHDU = hdu;
             }
Index: /trunk/ppArith/src/ppArithVersion.c
===================================================================
--- /trunk/ppArith/src/ppArithVersion.c	(revision 23194)
+++ /trunk/ppArith/src/ppArithVersion.c	(revision 23195)
@@ -59,7 +59,42 @@
 };
 
-void ppArithVersionMetadata(psMetadata *metadata)
+bool ppArithVersionHeader(psMetadata *header)
 {
-    PS_ASSERT_METADATA_NON_NULL(metadata,);
+    PS_ASSERT_METADATA_NON_NULL(header, false);
+
+    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, "ppArith at %s", timeString);
+    psFree(timeString);
+    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, history);
+    psFree(history);
+
+    psLibVersionHeader(header);
+    psModulesVersionHeader(header);
+    ppStatsVersionHeader(header);
+
+    psString version = ppArithVersion(); // Software version
+    psString source  = ppArithSource();  // Software source
+
+    psMetadataAddStr(header, PS_LIST_TAIL, "IPP.PPARITH.VERSION", PS_META_REPLACE,
+                     "Software version", version);
+    psMetadataAddStr(header, PS_LIST_TAIL, "IPP.PPARITH.SOURCE", PS_META_REPLACE,
+                     "S/W source", source);
+
+    psFree(version);
+    psFree(source);
+
+    return true;
+}
+
+void ppArithVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("ppArith", PS_LOG_INFO, "ppArith at %s", timeString);
+    psFree(timeString);
 
     psString pslib = psLibVersionLong();// psLib version
@@ -68,18 +103,9 @@
     psString ppArith = ppArithVersionLong(); // ppArith version
 
-    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, "ppArith processing at %s. Component information:", timeString);
-    psFree(timeString);
+    psLogMsg("ppArith", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("ppArith", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("ppArith", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("ppArith", PS_LOG_INFO, "%s", ppArith);
 
-    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, ppArith, "");
-
-    psFree(head);
     psFree(pslib);
     psFree(psmodules);
Index: /trunk/ppImage/src/ppImage.c
===================================================================
--- /trunk/ppImage/src/ppImage.c	(revision 23194)
+++ /trunk/ppImage/src/ppImage.c	(revision 23195)
@@ -21,4 +21,6 @@
         exit(PS_EXIT_CONFIG_ERROR);
     }
+
+    ppImageVersionPrint();
 
     // define recipe options
Index: /trunk/ppImage/src/ppImage.h
===================================================================
--- /trunk/ppImage/src/ppImage.h	(revision 23194)
+++ /trunk/ppImage/src/ppImage.h	(revision 23195)
@@ -218,4 +218,7 @@
     );
 
+/// Print version information
+void ppImageVersionPrint(void);
+
 
 // calculate stats, including MD5
Index: /trunk/ppImage/src/ppImageVersion.c
===================================================================
--- /trunk/ppImage/src/ppImageVersion.c	(revision 23194)
+++ /trunk/ppImage/src/ppImageVersion.c	(revision 23195)
@@ -74,2 +74,35 @@
     return true;
 }
+
+
+void ppImageVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("ppImage", PS_LOG_INFO, "ppImage at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString psphot = psphotVersionLong(); // psphot version
+    psString psastro = psastroVersionLong(); // psastro version
+    psString ppStats = ppStatsVersionLong(); // ppStats version
+    psString ppImage = ppImageVersionLong(); // ppImage version
+
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", psphot);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", psastro);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", ppImage);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(psphot);
+    psFree(psastro);
+    psFree(ppStats);
+    psFree(ppImage);
+
+    return;
+}
Index: /trunk/ppMerge/src/ppMerge.c
===================================================================
--- /trunk/ppMerge/src/ppMerge.c	(revision 23194)
+++ /trunk/ppMerge/src/ppMerge.c	(revision 23195)
@@ -38,4 +38,6 @@
         goto die;
     }
+
+    ppMergeVersionPrint();
 
     ppMergeType type = psMetadataLookupS32(NULL, config->arguments, "TYPE"); ///< Type of frame
Index: /trunk/ppMerge/src/ppMerge.h
===================================================================
--- /trunk/ppMerge/src/ppMerge.h	(revision 23194)
+++ /trunk/ppMerge/src/ppMerge.h	(revision 23195)
@@ -181,4 +181,8 @@
     );
 
+/// Print version information
+void ppMergeVersionPrint(void);
+
+
 ///@}
 #endif
Index: /trunk/ppMerge/src/ppMergeVersion.c
===================================================================
--- /trunk/ppMerge/src/ppMergeVersion.c	(revision 23194)
+++ /trunk/ppMerge/src/ppMergeVersion.c	(revision 23195)
@@ -90,2 +90,27 @@
 }
 
+void ppMergeVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("ppMerge", PS_LOG_INFO, "ppMerge at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString ppStats = ppStatsVersionLong(); // ppStats version
+    psString ppMerge = ppMergeVersionLong(); // ppMerge version
+
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("ppImage", PS_LOG_INFO, "%s", ppMerge);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(ppStats);
+    psFree(ppMerge);
+
+    return;
+}
Index: /trunk/ppStack/src/ppStack.c
===================================================================
--- /trunk/ppStack/src/ppStack.c	(revision 23194)
+++ /trunk/ppStack/src/ppStack.c	(revision 23195)
@@ -33,4 +33,6 @@
         goto die;
     }
+
+    ppStackVersionPrint();
 
     if (!pmModelClassInit()) {
Index: /trunk/ppStack/src/ppStack.h
===================================================================
--- /trunk/ppStack/src/ppStack.h	(revision 23194)
+++ /trunk/ppStack/src/ppStack.h	(revision 23195)
@@ -146,4 +146,7 @@
     );
 
+/// Print version information
+void ppStackVersionPrint(void);
+
 /// Convolve image to match specified seeing
 bool ppStackMatch(pmReadout *readout,   // Readout to be convolved; replaced with output
Index: /trunk/ppStack/src/ppStackVersion.c
===================================================================
--- /trunk/ppStack/src/ppStackVersion.c	(revision 23194)
+++ /trunk/ppStack/src/ppStackVersion.c	(revision 23195)
@@ -80,2 +80,31 @@
     return true;
 }
+
+void ppStackVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("ppStack", PS_LOG_INFO, "ppStack at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString psphot = psphotVersionLong(); // psphot version
+    psString ppStats = ppStatsVersionLong(); // psastro version
+    psString ppStack = ppStackVersionLong(); // ppStack version
+
+    psLogMsg("ppStack", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("ppStack", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("ppStack", PS_LOG_INFO, "%s", psphot);
+    psLogMsg("ppStack", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("ppStack", PS_LOG_INFO, "%s", ppStack);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(psphot);
+    psFree(ppStats);
+    psFree(ppStack);
+
+    return;
+}
Index: /trunk/ppSub/src/ppSub.c
===================================================================
--- /trunk/ppSub/src/ppSub.c	(revision 23194)
+++ /trunk/ppSub/src/ppSub.c	(revision 23195)
@@ -34,4 +34,6 @@
         goto die;
     }
+
+    ppSubVersionPrint();
 
     if (!pmModelClassInit()) {
Index: /trunk/ppSub/src/ppSub.h
===================================================================
--- /trunk/ppSub/src/ppSub.h	(revision 23194)
+++ /trunk/ppSub/src/ppSub.h	(revision 23195)
@@ -93,4 +93,7 @@
     );
 
+/// Print version information
+void ppSubVersionPrint(void);
+
 
 // Copy every instance of a single keyword from one metadata to another
Index: /trunk/ppSub/src/ppSubVersion.c
===================================================================
--- /trunk/ppSub/src/ppSubVersion.c	(revision 23194)
+++ /trunk/ppSub/src/ppSubVersion.c	(revision 23195)
@@ -92,2 +92,31 @@
     return true;
 }
+
+void ppSubVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("ppSub", PS_LOG_INFO, "ppSub at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString psphot = psphotVersionLong(); // psphot version
+    psString ppStats = ppStatsVersionLong(); // ppStats version
+    psString ppSub = ppSubVersionLong(); // ppSub version
+
+    psLogMsg("ppSub", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("ppSub", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("ppSub", PS_LOG_INFO, "%s", psphot);
+    psLogMsg("ppSub", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("ppSub", PS_LOG_INFO, "%s", ppSub);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(psphot);
+    psFree(ppStats);
+    psFree(ppSub);
+
+    return;
+}
Index: /trunk/psastro/src/Makefile.am
===================================================================
--- /trunk/psastro/src/Makefile.am	(revision 23194)
+++ /trunk/psastro/src/Makefile.am	(revision 23195)
@@ -10,6 +10,6 @@
 FORCE: ;
 
-libpsastro_la_CFLAGS = $(PSASTRO_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPSASTRO_VERSION=\"$(PSASTRO_VERSION)\" -DPSASTRO_BRANCH=\"$(PSASTRO_BRANCH)\" -DPSASTRO_SOURCE=\"$(PSASTRO_SOURCE)\"
-libpsastro_la_LDFLAGS = $(PSASTRO_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
+libpsastro_la_CFLAGS = $(PSASTRO_CFLAGS) $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPSASTRO_VERSION=\"$(PSASTRO_VERSION)\" -DPSASTRO_BRANCH=\"$(PSASTRO_BRANCH)\" -DPSASTRO_SOURCE=\"$(PSASTRO_SOURCE)\"
+libpsastro_la_LDFLAGS = $(PSASTRO_LIBS) $(PPSTATS_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
 
 bin_PROGRAMS = psastro psastroModel psastroModelFit gpcModel
Index: /trunk/psastro/src/psastro.c
===================================================================
--- /trunk/psastro/src/psastro.c	(revision 23194)
+++ /trunk/psastro/src/psastro.c	(revision 23195)
@@ -34,8 +34,10 @@
     if (!config) usage ();
 
+    psastroVersionPrint();
+
     // load identify the data sources
     if (!psastroParseCamera (config)) {
-	psErrorStackPrint(stderr, "error setting up the camera\n");
-	exit (1);
+        psErrorStackPrint(stderr, "error setting up the camera\n");
+        exit (1);
     }
 
@@ -43,18 +45,18 @@
     // select subset of stars for astrometry
     if (!psastroDataLoad (config)) {
-	psErrorStackPrint(stderr, "error loading input data\n");
-	exit (1);
+        psErrorStackPrint(stderr, "error loading input data\n");
+        exit (1);
     }
 
     // run the full astrometry analysis (chip and/or mosaic)
     if (!psastroAnalysis (config)) {
-	psErrorStackPrint(stderr, "failure in psastro analysis\n");
-	exit (1);
+        psErrorStackPrint(stderr, "failure in psastro analysis\n");
+        exit (1);
     }
-    
+
     // write out the results
     if (!psastroDataSave (config)) {
-	psErrorStackPrint(stderr, "failed to write out data\n");
-	exit (1);
+        psErrorStackPrint(stderr, "failed to write out data\n");
+        exit (1);
     }
 
Index: /trunk/psastro/src/psastro.h
===================================================================
--- /trunk/psastro/src/psastro.h	(revision 23194)
+++ /trunk/psastro/src/psastro.h	(revision 23195)
@@ -99,4 +99,5 @@
 bool              psastroVersionHeader(psMetadata *header);
 bool              psastroVersionHeaderFull(psMetadata *header);
+void              psastroVersionPrint(void);
 
 // demo plots
Index: /trunk/psastro/src/psastroVersion.c
===================================================================
--- /trunk/psastro/src/psastroVersion.c	(revision 23194)
+++ /trunk/psastro/src/psastroVersion.c	(revision 23195)
@@ -80,6 +80,33 @@
     psLibVersionHeader(header);
     psModulesVersionHeader(header);
+    ppStatsVersionHeader(header);
     psastroVersionHeader(header);
 
     return true;
 }
+
+void psastroVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("psastro", PS_LOG_INFO, "psastro at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString ppStats = ppStatsVersionLong(); // ppStats version
+    psString psastro = psastroVersionLong(); // psastro version
+
+    psLogMsg("psastro", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("psastro", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("psastro", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("psastro", PS_LOG_INFO, "%s", psastro);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(ppStats);
+    psFree(psastro);
+
+    return;
+}
Index: /trunk/psphot/src/psphot.c
===================================================================
--- /trunk/psphot/src/psphot.c	(revision 23194)
+++ /trunk/psphot/src/psphot.c	(revision 23195)
@@ -9,5 +9,5 @@
 
     psTimerStart ("complete");
-    pmErrorRegister();			// register psModule's error codes/messages
+    pmErrorRegister();                  // register psModule's error codes/messages
     psphotInit();
 
@@ -15,7 +15,9 @@
     pmConfig *config = psphotArguments (argc, argv);
     if (!config) {
-	psErrorStackPrint(stderr, "Error reading arguments\n");
-	usage ();
+        psErrorStackPrint(stderr, "Error reading arguments\n");
+        usage ();
     }
+
+    psphotVersionPrint();
 
     // load input data (config and images (signal, noise, mask)
Index: /trunk/psphot/src/psphot.h
===================================================================
--- /trunk/psphot/src/psphot.h	(revision 23194)
+++ /trunk/psphot/src/psphot.h	(revision 23195)
@@ -20,4 +20,5 @@
 bool            psphotVersionHeader(psMetadata *header);
 bool            psphotVersionHeaderFull(psMetadata *header);
+void            psphotVersionPrint(void);
 
 bool            psphotModelTest (pmConfig *config, const pmFPAview *view, psMetadata *recipe);
Index: /trunk/psphot/src/psphotVersion.c
===================================================================
--- /trunk/psphot/src/psphotVersion.c	(revision 23194)
+++ /trunk/psphot/src/psphotVersion.c	(revision 23195)
@@ -96,2 +96,26 @@
     return true;
 }
+
+
+void psphotVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("psphot", PS_LOG_INFO, "psphot at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString psphot = psphotVersionLong(); // psphot version
+
+    psLogMsg("psphot", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("psphot", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("psphot", PS_LOG_INFO, "%s", psphot);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(psphot);
+
+    return;
+}
Index: /trunk/pswarp/src/pswarp.c
===================================================================
--- /trunk/pswarp/src/pswarp.c	(revision 23194)
+++ /trunk/pswarp/src/pswarp.c	(revision 23195)
@@ -39,4 +39,6 @@
     if (!config) usage();
 
+    pswarpVersionPrint();
+
     // load identify the data sources
     if (!pswarpParseCamera(config)) {
Index: /trunk/pswarp/src/pswarp.h
===================================================================
--- /trunk/pswarp/src/pswarp.h	(revision 23194)
+++ /trunk/pswarp/src/pswarp.h	(revision 23195)
@@ -126,2 +126,5 @@
     psMetadata *header                  ///< Header to populate
     );
+
+/// Print version information
+void pswarpVersionPrint(void);
Index: /trunk/pswarp/src/pswarpVersion.c
===================================================================
--- /trunk/pswarp/src/pswarpVersion.c	(revision 23194)
+++ /trunk/pswarp/src/pswarpVersion.c	(revision 23195)
@@ -92,2 +92,31 @@
     return true;
 }
+
+void pswarpVersionPrint(void)
+{
+    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
+    psString timeString = psTimeToISO(time); // The time in an ISO string
+    psFree(time);
+    psLogMsg("pswarp", PS_LOG_INFO, "pswarp at %s", timeString);
+    psFree(timeString);
+
+    psString pslib = psLibVersionLong();// psLib version
+    psString psmodules = psModulesVersionLong(); // psModules version
+    psString psphot = psphotVersionLong(); // psphot version
+    psString ppStats = ppStatsVersionLong(); // ppStats version
+    psString pswarp = pswarpVersionLong(); // pswarp version
+
+    psLogMsg("pswarp", PS_LOG_INFO, "%s", pslib);
+    psLogMsg("pswarp", PS_LOG_INFO, "%s", psmodules);
+    psLogMsg("pswarp", PS_LOG_INFO, "%s", psphot);
+    psLogMsg("pswarp", PS_LOG_INFO, "%s", ppStats);
+    psLogMsg("pswarp", PS_LOG_INFO, "%s", pswarp);
+
+    psFree(pslib);
+    psFree(psmodules);
+    psFree(psphot);
+    psFree(ppStats);
+    psFree(pswarp);
+
+    return;
+}
