Index: trunk/ppMerge/src/ppMergeVersion.c
===================================================================
--- trunk/ppMerge/src/ppMergeVersion.c	(revision 23195)
+++ trunk/ppMerge/src/ppMergeVersion.c	(revision 23229)
@@ -22,6 +22,4 @@
 #include "ppMergeVersion.h"
 
-psString ppMergeVersion(void)
-{
 #ifndef PPMERGE_VERSION
 #error "PPMERGE_VERSION is not set"
@@ -30,13 +28,21 @@
 #error "PPMERGE_BRANCH is not set"
 #endif
-    return psStringCopy(PPMERGE_BRANCH "@" PPMERGE_VERSION);
+#ifndef PPMERGE_SOURCE
+#error "PPMERGE_SOURCE is not set"
+#endif
+
+#define xstr(s) str(s)
+#define str(s) #s
+
+psString ppMergeVersion(void)
+{
+    char *value = NULL;
+    psStringAppend(&value, "%s@%s", xstr(PPMERGE_BRANCH), xstr(PPMERGE_VERSION));
+    return value;
 }
 
 psString ppMergeSource(void)
 {
-#ifndef PPMERGE_SOURCE
-#error "PPMERGE_SOURCE is not set"
-#endif
-    return psStringCopy(PPMERGE_SOURCE);
+    return psStringCopy(xstr(PPMERGE_SOURCE));
 }
 
