Comparing the files installed for XOrg-6.9 and XOrg-7.3 as, e.g., include/X11/extensions/Xrender.h, I conclude that it is permissible to (judiciously) constify arguments in public prototypes. This patch avoids the gcc (3.4.6) warnings: ../../libSM-1.0.3/src/sm_client.c:104: warning: passing arg 7 of `IceRegisterForProtocolSetup' from incompatible pointer type ../../libSM-1.0.3/src/sm_manager.c:168: warning: passing arg 7 of `IceRegisterForProtocolReply' from incompatible pointer type when compiling libSM libICE and libSM are two of the libraries that still could need ANSIfication, I'd offer some help if you tell me to do so. diff -ur libICE-1.0.4.orig/include/X11/ICE/ICElib.h libICE-1.0.4/include/X11/ICE/ICElib.h --- libICE-1.0.4.orig/include/X11/ICE/ICElib.h 2006-07-11 22:41:03.000000000 +0200 +++ libICE-1.0.4/include/X11/ICE/ICElib.h 2008-10-02 23:40:00.000000000 +0200 @@ -214,7 +214,7 @@ int /* versionCount */, IcePoVersionRec * /* versionRecs */, int /* authCount */, - char ** /* authNames */, + const char ** /* authNames */, IcePoAuthProc * /* authProcs */, IceIOErrorProc /* IOErrorProc */ ); @@ -226,7 +226,7 @@ int /* versionCount */, IcePaVersionRec * /* versionRecs */, int /* authCount */, - char ** /* authNames */, + const char ** /* authNames */, IcePaAuthProc * /* authProcs */, IceHostBasedAuthProc /* hostBasedAuthProc */, IceProtocolSetupProc /* protocolSetupProc */, diff -ur libICE-1.0.4.orig/src/register.c libICE-1.0.4/src/register.c --- libICE-1.0.4.orig/src/register.c 2007-04-05 23:59:16.000000000 +0200 +++ libICE-1.0.4/src/register.c 2008-10-02 23:39:59.000000000 +0200 @@ -43,7 +43,7 @@ int versionCount; IcePoVersionRec *versionRecs; int authCount; -char **authNames; +const char **authNames; IcePoAuthProc *authProcs; IceIOErrorProc IOErrorProc; @@ -144,7 +144,7 @@ int versionCount; IcePaVersionRec *versionRecs; int authCount; -char **authNames; +const char **authNames; IcePaAuthProc *authProcs; IceHostBasedAuthProc hostBasedAuthProc; IceProtocolSetupProc protocolSetupProc;