--- a/image.cpp	2012-06-26 04:20:14.000000000 -0400
+++ b/image.cpp	2012-06-27 11:41:34.000000000 -0400
@@ -781,7 +781,11 @@
                                 (png_infopp) NULL);
     }
 
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+    if (setjmp(png_jmpbuf((png_ptr)))) {
+#else
     if (setjmp(png_ptr->jmpbuf)) {
+#endif
         goto png_destroy;
     }
 
