--- lib/Xm/Xpmscan.c.orig	2005-03-02 17:00:16.415070960 +0100
+++ lib/Xm/Xpmscan.c	2005-03-02 17:01:38.949709879 +0100
@@ -672,8 +672,8 @@
     char *dst;
     unsigned int *iptr;
     char *data;
-    unsigned int x, y, i;
-    int bits, depth, ibu, ibpp, offset;
+    unsigned int x, y;
+    int bits, depth, ibu, ibpp, offset, i;
     unsigned long lbt;
     Pixel pixel, px;
 
@@ -684,6 +684,9 @@
     ibpp = image->bits_per_pixel;
     offset = image->xoffset;
 
+    if (image->bitmap_unit < 0)
+	    return (XpmNoMemory);
+
     if ((image->bits_per_pixel | image->depth) == 1) {
 	ibu = image->bitmap_unit;
 	for (y = 0; y < height; y++)
--- lib/Xm/Xpmcreate.c.orig	2005-03-02 17:02:00.626412844 +0100
+++ lib/Xm/Xpmcreate.c	2005-03-02 17:02:35.183562480 +0100
@@ -1265,10 +1265,10 @@
     register char *src;
     register char *dst;
     register unsigned int *iptr;
-    register unsigned int x, y, i;
+    register unsigned int x, y;
     register char *data;
     Pixel pixel, px;
-    int nbytes, depth, ibu, ibpp;
+    int nbytes, depth, ibu, ibpp, i;
 
     data = image->data;
     iptr = pixelindex;