diff -up Tix8.4.2/generic/tixImgXpm.c_old Tix8.4.2/generic/tixImgXpm.c
--- Tix8.4.2/generic/tixImgXpm.c_old	2008-01-08 11:53:37.000000000 +0100
+++ Tix8.4.2/generic/tixImgXpm.c	2008-01-08 12:04:49.000000000 +0100
@@ -45,19 +45,19 @@ static int		ImgXpmConfigureMaster _ANSI_
 			    int flags));
 static int		ImgXpmGetData _ANSI_ARGS_((Tcl_Interp *interp,
 			    PixmapMaster *masterPtr));
-static char ** 		ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp,
+static CONST84 char **	ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp,
 			    char * string, int * numLines_return));
-static char ** 		ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp,
+static CONST84 char **	ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp,
 			    CONST84 char * id));
-static char ** 		ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp,
+static CONST84 char ** 	ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp,
 			    char * string, int * numLines_return));
 static void 		ImgXpmGetPixmapFromData _ANSI_ARGS_((
 			    Tcl_Interp * interp,
 			    PixmapMaster *masterPtr,
 			    PixmapInstance *instancePtr));
-static char *		GetType _ANSI_ARGS_((char * colorDefn,
+static CONST84 char *	GetType _ANSI_ARGS_((CONST84 char * colorDefn,
 			    int  * type_ret));
-static char *		GetColor _ANSI_ARGS_((char * colorDefn,
+static CONST84 char *	GetColor _ANSI_ARGS_((CONST84 char * colorDefn,
 			    char * colorName, int * type_ret));
 
 /*
@@ -286,7 +286,7 @@ ImgXpmGetData(interp, masterPtr)
     Tcl_Interp *interp;			/* For reporting errors. */
     PixmapMaster *masterPtr;
 {
-    char ** data = NULL;
+    CONST84 char ** data = NULL;
     int  isAllocated = 0;	/* do we need to free "data"? */
     int listArgc;
     CONST84 char ** listArgv = NULL;
@@ -363,7 +363,7 @@ ImgXpmGetData(interp, masterPtr)
     return code;
 }
 
-static char ** ImgXpmGetDataFromId(interp, id)
+static CONST84 char ** ImgXpmGetDataFromId(interp, id)
     Tcl_Interp * interp;
     CONST84 char * id;
 {
@@ -378,13 +378,13 @@ static char ** ImgXpmGetDataFromId(inter
     if (hashPtr == NULL) {
 	Tcl_AppendResult(interp, "unknown pixmap ID \"", id,
 	    "\"", NULL);
-	return (char**)NULL;
+	return NULL;
     } else {
-	return (char**)Tcl_GetHashValue(hashPtr);
+	return (CONST84 char**)Tcl_GetHashValue(hashPtr);
     }
 }
 
-static char ** ImgXpmGetDataFromString(interp, string, numLines_return)
+static CONST84 char ** ImgXpmGetDataFromString(interp, string, numLines_return)
     Tcl_Interp * interp;
     char * string;
     int * numLines_return;
@@ -392,7 +392,7 @@ static char ** ImgXpmGetDataFromString(i
     int quoted;
     char * p, * list;
     int numLines;
-    char ** data;
+    CONST84 char ** data;
 
     /* skip the leading blanks (leading blanks are not defined in the
      * the XPM definition, but skipping them shouldn't hurt. Also, the ability
@@ -510,17 +510,17 @@ static char ** ImgXpmGetDataFromString(i
 
   error:
     Tcl_AppendResult(interp, "File format error", NULL);
-    return (char**) NULL;
+    return NULL;
 }
 
-static char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return)
+static CONST84 char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return)
     Tcl_Interp * interp;
     char * fileName;
     int * numLines_return;
 {
     FILE * fd = NULL;
     int size, n;
-    char ** data;
+    CONST84 char ** data;
     char *cmdBuffer = NULL;
     Tcl_DString buffer;			/* initialized by Tcl_TildeSubst */
 
@@ -588,16 +588,16 @@ static char ** ImgXpmGetDataFromFile(int
 	ckfree(cmdBuffer);
     }
     Tcl_DStringFree(&buffer);
-    return (char**)NULL;
+    return NULL;
 }
 
 
-static char *
+static CONST84 char *
 GetType(colorDefn, type_ret)
-    char * colorDefn;
+    CONST84 char * colorDefn;
     int  * type_ret;
 {
-    char * p = colorDefn;
+    CONST84 char * p = colorDefn;
 
     /* skip white spaces */
     while (*p && isspace(*p)) {
@@ -642,9 +642,9 @@ GetType(colorDefn, type_ret)
 /*
  * colorName is guaranteed to be big enough
  */
-static char *
+static CONST84 char *
 GetColor(colorDefn, colorName, type_ret)
-    char * colorDefn;
+    CONST84 char * colorDefn;
     char * colorName;		/* if found, name is copied to this array */
     int  * type_ret;
 {
@@ -751,7 +751,7 @@ ImgXpmGetPixmapFromData(interp, masterPt
     }
 
     for (i=0; i<masterPtr->ncolors; i++) {
-	char * colorDefn;		/* the color definition line */
+	CONST84 char * colorDefn;	/* the color definition line */
 	char * colorName;		/* temp place to hold the color name
 					 * defined for one type of visual */
 	char * useName;			/* the color name used for this
@@ -842,7 +842,7 @@ ImgXpmGetPixmapFromData(interp, masterPt
      * Parse the main body of the image
      */
     for (i=0; i<masterPtr->size[1]; i++) {
-	char * p = masterPtr->data[i+lOffset];
+	CONST84 char * p = masterPtr->data[i+lOffset];
 
 	for (j=0; j<masterPtr->size[0]; j++) {
 	    if (masterPtr->cpp == 1) {
diff -up Tix8.4.2/generic/tixImgXpm.h_old Tix8.4.2/generic/tixImgXpm.h
--- Tix8.4.2/generic/tixImgXpm.h_old	2008-01-08 12:04:59.000000000 +0100
+++ Tix8.4.2/generic/tixImgXpm.h	2008-01-08 12:05:26.000000000 +0100
@@ -55,7 +55,7 @@ typedef struct PixmapMaster {
     int size[2];		/* width and height */
     int ncolors;		/* number of colors */
     int cpp;			/* characters per pixel */
-    char ** data;		/* The data that defines this pixmap 
+    CONST84 char ** data;	/* The data that defines this pixmap 
 				 * image (array of strings). It is
 				 * converted into an X Pixmap when this
 				 * image is instanciated
diff -up Tix8.4.2/generic/tixInt.h_old Tix8.4.2/generic/tixInt.h
--- Tix8.4.2/generic/tixInt.h_old	2008-01-08 12:05:53.000000000 +0100
+++ Tix8.4.2/generic/tixInt.h	2008-01-08 12:09:35.000000000 +0100
@@ -23,6 +23,10 @@
 #include <tixPort.h>
 #endif
 
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
 /*----------------------------------------------------------------------
  *
  *		Tix Display Item Types
diff -up Tix8.4.2/Makefile.in_old Tix8.4.2/Makefile.in
--- Tix8.4.2/Makefile.in_old	2008-01-08 11:43:41.000000000 +0100
+++ Tix8.4.2/Makefile.in	2008-01-08 11:46:22.000000000 +0100
@@ -128,6 +128,7 @@ SHLIB_LD	= @SHLIB_LD@ $(CFLAGS) -Wl,-son
 SHLIB_LD_FLAGS	= @SHLIB_LD_FLAGS@
 SHLIB_LD_LIBS	= @SHLIB_LD_LIBS@
 STLIB_LD	= @STLIB_LD@
+TCL_VERSION	= @TCL_VERSION@
 TCL_DEFS	= @TCL_DEFS@
 TCL_SRC_DIR	= @TCL_SRC_DIR@
 TCL_BIN_DIR	= @TCL_BIN_DIR@
@@ -294,7 +295,7 @@ VPATH = $(srcdir):$(srcdir)/generic:$(sr
 
 pkgIndex.tcl:
 	(\
-	echo 'if {[catch {package require Tcl 8.4}]} return';\
+	echo 'if {[catch {package require Tcl $(TCL_VERSION)}]} return';\
 	echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \
 	    [list load [file join $$dir $(PKG_LIB_FILE)] $(PACKAGE_NAME)]'\
 	) > pkgIndex.tcl
