Index: trunk/ppStack/src/ppStackVersion.c
===================================================================
--- trunk/ppStack/src/ppStackVersion.c	(revision 23195)
+++ trunk/ppStack/src/ppStackVersion.c	(revision 23229)
@@ -11,6 +11,4 @@
 #include "ppStack.h"
 
-psString ppStackVersion(void)
-{
 #ifndef PPSTACK_VERSION
 #error "PPSTACK_VERSION is not set"
@@ -19,13 +17,21 @@
 #error "PPSTACK_BRANCH is not set"
 #endif
-    return psStringCopy(PPSTACK_BRANCH "@" PPSTACK_VERSION);
+#ifndef PPSTACK_SOURCE
+#error "PPSTACK_SOURCE is not set"
+#endif
+
+#define xstr(s) str(s)
+#define str(s) #s
+
+psString ppStackVersion(void)
+{
+    char *value = NULL;
+    psStringAppend(&value, "%s@%s", xstr(PPSTACK_BRANCH), xstr(PPSTACK_VERSION));
+    return value;
 }
 
 psString ppStackSource(void)
 {
-#ifndef PPSTACK_SOURCE
-#error "PPSTACK_SOURCE is not set"
-#endif
-    return psStringCopy(PPSTACK_SOURCE);
+    return psStringCopy(xstr(PPSTACK_SOURCE));
 }
 
