--- /dev/null
+--- lib/common.c.orig Fri Dec 27 00:40:55 2002
++++ lib/common.c Sat Jan 11 23:17:13 2003
+@@ -42,6 +42,8 @@
+
+ #ifndef GG_DEBUG_DISABLE
+
++#define va_copy(x...) __va_copy(x)
++
+ /*
+ * gg_debug() // funkcja wewnêtrzna
+ *
+@@ -81,6 +83,7 @@
+ int size = 0;
+ const char *start;
+ char *buf = NULL;
++ va_list ap2;
+
+ start = format;
+
+@@ -92,21 +95,25 @@
+ size = 128;
+ do {
+ size *= 2;
++ va_copy(ap2, ap);
+ if (!(tmp = realloc(buf, size))) {
+ free(buf);
+ return NULL;
+ }
+ buf = tmp;
+- res = vsnprintf(buf, size, format, ap);
++ res = vsnprintf(buf, size, format, ap2);
++ va_end(ap2);
+ } while (res == size - 1 || res == -1);
+ }
+ #else
+ {
+ char tmp[1];
++ va_copy(ap2, ap);
+
+ /* libce Solarisa przy buforze NULL zawsze zwracaj± -1, wiêc
+ * musimy podaæ co¶ istniej±cego jako cel printf()owania. */
+- size = vsnprintf(tmp, sizeof(tmp), format, ap);
++ size = vsnprintf(tmp, sizeof(tmp), format, ap2);
++ va_end(ap2);
+ if (!(buf = malloc(size + 1)))
+ return NULL;
+ }