diff -ru giflib-4.1.0/lib/dgif_lib.c giflib-4.1.0-tony/lib/dgif_lib.c
--- giflib-4.1.0/lib/dgif_lib.c	Wed Feb 10 17:19:39 1999
+++ giflib-4.1.0-tony/lib/dgif_lib.c	Mon May 14 16:53:45 2001
@@ -358,14 +358,9 @@
 	sp = &GifFile->SavedImages[GifFile->ImageCount];
 	memcpy(&sp->ImageDesc, &GifFile->Image, sizeof(GifImageDesc));
     if (GifFile->Image.ColorMap != NULL) {
-	    sp->ImageDesc.ColorMap =
-               (ColorMapObject *)malloc(sizeof (ColorMapObject));
-	    memcpy(&sp->ImageDesc.ColorMap, &GifFile->Image.ColorMap,
-               sizeof(ColorMapObject));
-	    sp->ImageDesc.ColorMap->Colors =
-               (GifColorType *)malloc(sizeof (GifColorType));
-	    memcpy(&sp->ImageDesc.ColorMap->Colors,
-               &GifFile->Image.ColorMap->Colors, sizeof(GifColorType));
+      ColorMapObject *map = GifFile->Image.ColorMap;
+      sp->ImageDesc.ColorMap = 
+	MakeMapObject(map->ColorCount, map->Colors);     
     }
 	sp->RasterBits = (char *)NULL;
 	sp->ExtensionBlockCount = 0;
diff -ru giflib-4.1.0/lib/egif_lib.c giflib-4.1.0-tony/lib/egif_lib.c
--- giflib-4.1.0/lib/egif_lib.c	Wed Feb 10 17:19:39 1999
+++ giflib-4.1.0-tony/lib/egif_lib.c	Fri May  4 22:36:53 2001
@@ -167,6 +167,12 @@
         _GifError = E_GIF_ERR_NOT_ENOUGH_MEM;
         return NULL;
     }
+    if ((Private->HashTable = _InitHashTable()) == NULL) {
+        free(GifFile);
+        free(Private);
+        _GifError = E_GIF_ERR_NOT_ENOUGH_MEM;
+        return NULL;
+    }
 
     GifFile->Private = (VoidPtr) Private;
     Private->FileHandle = 0;
