Index: trunk/psModules/src/config/pmVersion.c
===================================================================
--- trunk/psModules/src/config/pmVersion.c	(revision 10291)
+++ trunk/psModules/src/config/pmVersion.c	(revision 23117)
@@ -8,21 +8,39 @@
 #include "pmVersion.h"
 
-static const char *cvsTag = "$Name: not supported by cvs2svn $";// CVS tag name
-
 psString psModulesVersion(void)
 {
-    psString version = NULL;            // Version, to return
-    psStringAppend(&version, "%s-%s",PACKAGE_NAME,PACKAGE_VERSION);
-    return version;
+#ifndef PSMODULES_VERSION
+#error "PSMODULES_VERSION is not set"
+#endif
+#ifndef PSMODULES_BRANCH
+#error "PSMODULES_BRANCH is not set"
+#endif
+    return psStringCopy(PSMODULES_BRANCH "@" PSMODULES_VERSION);
 }
+
+psString psModulesSource(void)
+{
+#ifndef PSMODULES_SOURCE
+#error "PSMODULES_SOURCE is not set"
+#endif
+    return psStringCopy(PSMODULES_SOURCE);
+}
+
 
 psString psModulesVersionLong(void)
 {
-    psString version = psModulesVersion(); // Version, to return
-    psString tag = psStringStripCVS(cvsTag, "Name"); // CVS tag
+    psString version = psModulesVersion();  // Version, to return
+    psString source = psModulesSource();    // Source
 
-    psStringAppend(&version, " (cvs tag %s) %s, %s", tag, __DATE__, __TIME__);
+    psStringPrepend(&version, "psModules ");
+    psStringAppend(&version, " from %s, built %s, %s", source, __DATE__, __TIME__);
+    psFree(source);
 
-    psFree(tag);
+#ifdef __OPTIMIZE__
+    psStringAppend(&version, " optimised");
+#else
+    psStringAppend(&version, " unoptimised");
+#endif
+
     return version;
-}
+};
