--- /dev/null
+--- links-2.2/png.c~ 2005-01-02 20:03:34.000000000 +0100
++++ links-2.2/png.c 2012-02-11 01:39:31.224412608 +0100
+@@ -48,7 +48,7 @@
+ /* Error for from-web PNG images. */
+ void img_my_png_error(png_structp png_ptr, png_const_charp error_string)
+ {
+- longjmp(png_ptr->jmpbuf,1);
++ longjmp(png_jmpbuf(png_ptr),1);
+ }
+
+ void png_info_callback(png_structp png_ptr, png_infop info_ptr)
+@@ -203,7 +203,7 @@
+ #ifdef DEBUG
+ if (!info_ptr) internal ("png_create_info_struct failed\n");
+ #endif /* #ifdef DEBUG */
+- if (setjmp(png_ptr->jmpbuf)){
++ if (setjmp(png_jmpbuf(png_ptr))){
+ error:
+ png_destroy_read_struct(&png_ptr, &info_ptr,
+ (png_infopp)NULL);
+@@ -213,7 +213,7 @@
+ png_set_progressive_read_fn(png_ptr, NULL,
+ png_info_callback, png_row_callback,
+ png_end_callback);
+- if (setjmp(png_ptr->jmpbuf)) goto error;
++ if (setjmp(png_jmpbuf(png_ptr))) goto error;
+ decoder=mem_alloc(sizeof(*decoder));
+ decoder->png_ptr=png_ptr;
+ decoder->info_ptr=info_ptr;
+@@ -232,7 +232,7 @@
+ png_ptr=((struct png_decoder *)(cimg->decoder))->png_ptr;
+ info_ptr=((struct png_decoder *)(cimg->decoder))->info_ptr;
+ end_callback_hit=0;
+- if (setjmp(png_ptr->jmpbuf)){
++ if (setjmp(png_jmpbuf(png_ptr))){
+ img_end(cimg);
+ return;
+ }