--- ./nx-X11/programs/Xserver/os/xprintf.c.X.original	2015-02-13 14:03:44.792440567 +0100
+++ ./nx-X11/programs/Xserver/os/xprintf.c	2015-02-10 19:13:13.480698017 +0100
@@ -43,6 +43,63 @@
 # endif
 #endif
     
+#ifdef NX_TRANS_SOCKET
+
+#define PANIC
+#define WARNING
+#undef  TEST
+#undef  DEBUG
+
+#define START_SIZE  256
+#define END_SIZE   2048
+
+char *
+Xvprintf(const char *format, va_list va)
+{
+    char *ret;
+    char *newret;
+    int size;
+    int r;
+
+    size = 0;
+
+    for (;;)
+    {
+      if (size == 0)
+      {
+        ret = (char *)malloc(START_SIZE);
+        if (ret == NULL)
+          return NULL;
+        size = START_SIZE;
+      }
+      else if (size < END_SIZE &&
+                   (newret = (char *) realloc(ret, 2 * size)) != NULL)
+      {
+        ret = newret;
+        size = 2 * size;
+      }
+      else
+      {
+        free(ret);
+        return NULL;
+      }
+
+      r = vsnprintf(ret, size, format, va);
+
+      if (r == -1 || r == size || r > size || r == size - 1)
+      {
+        continue;
+      }
+      else
+      {
+        ret[r] = 0;
+        return ret;
+      }
+    }
+}
+
+#else
+
 char *
 Xvprintf(const char *format, va_list va)
 {
@@ -63,6 +120,8 @@
     return ret;
 }
 
+#endif
+
 char *Xprintf(const char *format, ...)
 {
     char *ret;
