Index: trunk/ppImage/src/ppImageVersion.c
===================================================================
--- trunk/ppImage/src/ppImageVersion.c	(revision 23195)
+++ trunk/ppImage/src/ppImageVersion.c	(revision 23229)
@@ -5,6 +5,4 @@
 #include "ppImage.h"
 
-psString ppImageVersion(void)
-{
 #ifndef PPIMAGE_VERSION
 #error "PPIMAGE_VERSION is not set"
@@ -13,13 +11,21 @@
 #error "PPIMAGE_BRANCH is not set"
 #endif
-    return psStringCopy(PPIMAGE_BRANCH "@" PPIMAGE_VERSION);
+#ifndef PPIMAGE_SOURCE
+#error "PPIMAGE_SOURCE is not set"
+#endif
+
+#define xstr(s) str(s)
+#define str(s) #s
+
+psString ppImageVersion(void)
+{
+    char *value = NULL;
+    psStringAppend(&value, "%s@%s", xstr(PPIMAGE_BRANCH), xstr(PPIMAGE_VERSION));
+    return value;
 }
 
 psString ppImageSource(void)
 {
-#ifndef PPIMAGE_SOURCE
-#error "PPIMAGE_SOURCE is not set"
-#endif
-    return psStringCopy(PPIMAGE_SOURCE);
+    return psStringCopy (xstr(PPIMAGE_SOURCE));
 }
 
@@ -27,5 +33,5 @@
 {
     psString version = ppImageVersion();  // Version, to return
-    psString source = ppImageSource();    // Source
+    psString source = ppImageSource(); // Source
 
     psStringPrepend(&version, "ppImage ");
