--- ming-0.4.5/src/blocks/gifdbl.c.orig	2010-10-10 09:19:23.000000000 +0200
+++ ming-0.4.5/src/blocks/gifdbl.c	2014-04-06 21:48:13.695395774 +0200
@@ -69,7 +69,7 @@
 	unsigned char *bits;
 	unsigned char *data;
 	unsigned char *p;
-	int i, nColors, size, alpha, bgColor, alignedWidth, bytesPerColor;
+	int i, nColors, size, alpha, bgColor, alignedWidth, bytesPerColor, giferror;
 	unsigned long outsize;
 
 	if(DGifSlurp(file) != GIF_OK)
@@ -203,7 +203,7 @@
 	}
 
 	/* Done! */
-	DGifCloseFile(file);
+	DGifCloseFile(file, &giferror);
 
 	result->data = malloc(outsize = (int)floor(size*1.01+12));
 
@@ -227,7 +227,7 @@ SWFDBLBitmapData newSWFDBLBitmapData_fro
 	SWFDBLBitmapData ret;
 	struct dbl_data gifdata;
 
-	if((file = DGifOpenFileName(fileName)) == NULL)
+	if((file = DGifOpenFileName(fileName, NULL)) == NULL)
 		return NULL;
 	if(!readGif(file, &gifdata))
 		return NULL;
@@ -246,7 +246,7 @@ SWFDBLBitmapData newSWFDBLBitmapData_fro
 	SWFDBLBitmapData ret;
 	struct dbl_data gifdata;
 
-	if((file = DGifOpen(input, (InputFunc) gifReadFunc)) == NULL)
+	if((file = DGifOpen(input, (InputFunc) gifReadFunc, NULL)) == NULL)
 		return NULL;
 	if(!readGif(file, &gifdata))
 		return NULL;
--- ming-0.4.5/src/libming.h.orig	2013-06-08 16:08:51.000000000 +0200
+++ ming-0.4.5/src/libming.h	2014-04-06 21:45:18.005399434 +0200
@@ -76,12 +76,4 @@ typedef unsigned char BOOL;
   #include <unistd.h>
 #endif
 
-#if GIFLIB_GIFERRORSTRING
-static void
-PrintGifError(void)
-{
-	fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString());
-}
-#endif
-
 #endif /* SWF_LIBMING_H_INCLUDED */
--- ming-0.4.5/util/gif2dbl.c.orig	2013-06-08 16:08:51.000000000 +0200
+++ ming-0.4.5/util/gif2dbl.c	2014-04-06 22:00:18.692047334 +0200
@@ -19,10 +19,9 @@
 
 #include "libming.h"
 
-void error(char *msg)
+void gifError(char *msg, int err)
 {
-  printf("%s:\n\n", msg);
-  PrintGifError();
+  printf("%s:\n\n%s\n", msg, GifErrorString(err));
   exit(-1);
 }
 
@@ -57,13 +56,13 @@ unsigned char *readGif(char *fileName, i
   unsigned char *bits;
   unsigned char *data;
   unsigned char *p;
-  int i, nColors, size, alpha, bgColor, alignedWidth;
+  int i, nColors, size, alpha, bgColor, alignedWidth, err;
 
-  if((file = DGifOpenFileName(fileName)) == NULL)
-    error("Error opening file");
+  if((file = DGifOpenFileName(fileName, &err)) == NULL)
+    gifError("Error opening file", err);
 
   if(DGifSlurp(file) != GIF_OK)
-    error("Error slurping file");
+    gifError("Error slurping file", file->Error);
 
   /* data should now be available */
 
@@ -189,7 +189,7 @@
   }
 
 	/* Done! */
-  DGifCloseFile(file);
+  DGifCloseFile(file, &err);
 
   *length = size;
   return data;
--- ming-0.4.5/util/gif2mask.c.orig	2013-06-08 16:08:51.000000000 +0200
+++ ming-0.4.5/util/gif2mask.c	2014-04-06 21:59:20.702048538 +0200
@@ -13,10 +13,9 @@
 
 #define max(a,b,c) (((a)>(b))?(((c)>(a))?(c):(a)):(((c)>(b))?(c):(b)))
 
-void error(char *msg)
+void gifError(char *msg, int err)
 {
-  printf("%s:\n\n", msg);
-  PrintGifError();
+  printf("%s:\n\n%s\n", msg, GifErrorString(err));
   exit(-1);
 }
 
@@ -26,13 +25,13 @@ unsigned char *readGif(char *fileName, i
   unsigned char *bits;
   unsigned char colorMap[256];
   unsigned char *data;
-  int i, nColors, size;
+  int i, nColors, size, err;
 
-  if((file = DGifOpenFileName(fileName)) == NULL)
-    error("Error opening file");
+  if((file = DGifOpenFileName(fileName, &err)) == NULL)
+    gifError("Error opening file", err);
 
   if(DGifSlurp(file) != GIF_OK)
-    error("Error slurping file");
+    gifError("Error slurping file", file->Error);
 
   /* data should now be available */
 
