diff -Naur gsoap-2.7.orig/soapcpp2/stdsoap2.cpp gsoap-2.7/soapcpp2/stdsoap2.cpp --- gsoap-2.7.orig/soapcpp2/stdsoap2.cpp 2006-06-23 16:01:00.000000000 +0200 +++ gsoap-2.7/soapcpp2/stdsoap2.cpp 2006-06-28 19:59:26.000000000 +0200 @@ -2013,7 +2013,11 @@ for (xp = soap->xlist; xp; xp = xp->next) { if (xp->ptr && (char*)xp->ptr >= start && (char*)xp->ptr < end) { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Update id='%s' %p -> %p\n", xp->id?xp->id:"", xp->ptr, (char*)xp->ptr + (p1-p2))); +#if __GNUC__ > 3 + xp->ptr = (unsigned const char**)((char*)xp->ptr + (p1-p2)); +#else xp->ptr = (unsigned char**)((char*)xp->ptr + (p1-p2)); +#endif xp->size = (int*)((char*)xp->size + (p1-p2)); xp->type = (char**)((char*)xp->type + (p1-p2)); xp->options = (char**)((char*)xp->options + (p1-p2));