diff -crN /png_original/libpng-1.2.32/Makefile.in /png/libpng-1.2.32.patched/Makefile.in
*** /png_original/libpng-1.2.32/Makefile.in	2009-03-15 23:58:15.000000000 +0600
--- /png/libpng-1.2.32.patched/Makefile.in	2009-03-15 23:19:51.000000000 +0600
***************
*** 313,318 ****
--- 313,319 ----
  # Avoid depending upon Character Ranges.
  AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  pkginclude_HEADERS = png.h pngconf.h
+ pkgconfigdir = $(libdir)/pkgconfig
  pkgconfig_DATA = libpng12.pc
  
  #extra source distribution files.
***************
*** 350,364 ****
  	@for dep in $?; do \
  	  case '$(am__configure_deps)' in \
  	    *$$dep*) \
! 	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
! 	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
  		&& exit 0; \
  	      exit 1;; \
  	  esac; \
  	done; \
! 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
  	cd $(top_srcdir) && \
! 	  $(AUTOMAKE) --foreign  Makefile
  .PRECIOUS: Makefile
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
  	@case '$?' in \
--- 351,365 ----
  	@for dep in $?; do \
  	  case '$(am__configure_deps)' in \
  	    *$$dep*) \
! 	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu  --ignore-deps '; \
! 	      cd $(srcdir) && $(AUTOMAKE) --gnu  --ignore-deps  \
  		&& exit 0; \
  	      exit 1;; \
  	  esac; \
  	done; \
! 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  --ignore-deps Makefile'; \
  	cd $(top_srcdir) && \
! 	  $(AUTOMAKE) --gnu  --ignore-deps Makefile
  .PRECIOUS: Makefile
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
  	@case '$?' in \
***************
*** 411,417 ****
  
  uninstall-libLTLIBRARIES:
  	@$(NORMAL_UNINSTALL)
! 	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
  	  p=$(am__strip_dir) \
  	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
  	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
--- 412,418 ----
  
  uninstall-libLTLIBRARIES:
  	@$(NORMAL_UNINSTALL)
! 	@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
  	  p=$(am__strip_dir) \
  	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
  	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
***************
*** 465,522 ****
  distclean-compile:
  	-rm -f *.tab.c
  
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-png.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngerror.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngget.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngmem.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngpread.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngread.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngrio.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngrtran.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngrutil.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngset.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngtrans.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngwio.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngwrite.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngwtran.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng12_la-pngwutil.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-png.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngerror.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngget.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngmem.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngpread.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngread.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngrio.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngrtran.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngrutil.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngset.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngtrans.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngwio.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngwrite.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngwtran.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng_la-pngwutil.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pngtest.Po@am__quote@
- 
  .c.o:
! @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
! @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
! @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
! @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
! @am__fastdepCC_FALSE@	$(COMPILE) -c $<
! 
  .c.obj:
! @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
! @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
! @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
! @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
! @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
! 
  .c.lo:
! @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
! @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
! @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
! @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
! @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
  
  libpng_la-png.lo: png.c
  @am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng_la-png.lo -MD -MP -MF $(DEPDIR)/libpng_la-png.Tpo -c -o libpng_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c
--- 466,477 ----
  distclean-compile:
  	-rm -f *.tab.c
  
  .c.o:
! 	$(COMPILE) -c $<
  .c.obj:
! 	$(COMPILE) -c `$(CYGPATH_W) '$<'`
  .c.lo:
! 	$(LTCOMPILE) -c -o $@ $<
  
  libpng_la-png.lo: png.c
  @am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng_la-png.lo -MD -MP -MF $(DEPDIR)/libpng_la-png.Tpo -c -o libpng_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c
***************
*** 727,733 ****
  @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngpread.c' object='libpng12_la-pngpread.lo' libtool=yes @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng12_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng12_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c
- 
  mostlyclean-libtool:
  	-rm -f *.lo
  
--- 682,687 ----
***************
*** 890,895 ****
--- 844,850 ----
  CTAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
  		$(TAGS_FILES) $(LISP)
  	tags=; \
+ 	here=`pwd`; \
  	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
  	unique=`for i in $$list; do \
  	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
***************
*** 1214,1220 ****
  ps-am:
  
  uninstall-am: uninstall-binSCRIPTS uninstall-libLTLIBRARIES \
! 	uninstall-man uninstall-pkgconfigDATA \
  	uninstall-pkgincludeHEADERS
  	@$(NORMAL_INSTALL)
  	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
--- 1169,1175 ----
  ps-am:
  
  uninstall-am: uninstall-binSCRIPTS uninstall-libLTLIBRARIES \
!         uninstall-man uninstall-pkgconfigDATA \
  	uninstall-pkgincludeHEADERS
  	@$(NORMAL_INSTALL)
  	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
***************
*** 1232,1238 ****
  	distclean-libtool distclean-tags distcleancheck distdir \
  	distuninstallcheck dvi dvi-am html html-am info info-am \
  	install install-am install-binSCRIPTS install-data \
! 	install-data-am install-data-hook install-dvi install-dvi-am \
  	install-exec install-exec-am install-exec-hook install-html \
  	install-html-am install-info install-info-am \
  	install-libLTLIBRARIES install-man install-man3 install-man5 \
--- 1187,1193 ----
  	distclean-libtool distclean-tags distcleancheck distdir \
  	distuninstallcheck dvi dvi-am html html-am info info-am \
  	install install-am install-binSCRIPTS install-data \
! 	install-data-am  install-data-hook install-dvi install-dvi-am \
  	install-exec install-exec-am install-exec-hook install-html \
  	install-html-am install-info install-info-am \
  	install-libLTLIBRARIES install-man install-man3 install-man5 \
***************
*** 1243,1249 ****
  	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
  	pdf pdf-am ps ps-am tags uninstall uninstall-am \
  	uninstall-binSCRIPTS uninstall-hook uninstall-libLTLIBRARIES \
! 	uninstall-man uninstall-man3 uninstall-man5 \
  	uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS
  
  
--- 1198,1204 ----
  	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
  	pdf pdf-am ps ps-am tags uninstall uninstall-am \
  	uninstall-binSCRIPTS uninstall-hook uninstall-libLTLIBRARIES \
!         uninstall-man uninstall-man3 uninstall-man5 \
  	uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS
  
  
***************
*** 1288,1299 ****
  	cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config
  	@set -x;\
  	cd $(DESTDIR)$(libdir);\
! 	for ext in a la so sl dylib; do\
! 		rm -f libpng.$$ext;\
!                 if test -f $(PNGLIB_BASENAME).$$ext; then\
!                        $(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\
!                 fi;\
! 	done
  
  uninstall-hook:
  	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h
--- 1243,1254 ----
  	cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config
  	@set -x;\
  	cd $(DESTDIR)$(libdir);\
! #	for ext in a la so sl dylib; do\
! #		rm -f libpng.$$ext;\
!                # if test -f $(PNGLIB_BASENAME).$$ext; then\
!                #        $(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\
!                # fi;\
! #	done
  
  uninstall-hook:
  	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h
diff -crN /png_original/libpng-1.2.32/png.h /png/libpng-1.2.32.patched/png.h
*** /png_original/libpng-1.2.32/png.h	2009-03-15 23:58:14.000000000 +0600
--- /png/libpng-1.2.32.patched/png.h	2009-03-09 08:31:42.000000000 +0600
***************
*** 1169,1175 ****
  struct png_struct_def
  {
  #ifdef PNG_SETJMP_SUPPORTED
!    jmp_buf jmpbuf;            /* used in png_error */
  #endif
     png_error_ptr error_fn;    /* function for printing errors and aborting */
     png_error_ptr warning_fn;  /* function for printing warnings */
--- 1169,1175 ----
  struct png_struct_def
  {
  #ifdef PNG_SETJMP_SUPPORTED
!    jmp_buf PNG_jmpbuf;            /* used in png_error */
  #endif
     png_error_ptr error_fn;    /* function for printing errors and aborting */
     png_error_ptr warning_fn;  /* function for printing warnings */
diff -crN /png_original/libpng-1.2.32/pngconf.h /png/libpng-1.2.32.patched/pngconf.h
*** /png_original/libpng-1.2.32/pngconf.h	2009-03-15 23:58:14.000000000 +0600
--- /png/libpng-1.2.32.patched/pngconf.h	2009-03-09 08:31:42.000000000 +0600
***************
*** 1419,1425 ****
  #endif
  
  #ifdef PNG_SETJMP_SUPPORTED
! #  define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
  #else
  #  define png_jmpbuf(png_ptr) \
     (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)
--- 1419,1425 ----
  #endif
  
  #ifdef PNG_SETJMP_SUPPORTED
! #  define png_jmpbuf(png_ptr) ((png_ptr)->PNG_jmpbuf)
  #else
  #  define png_jmpbuf(png_ptr) \
     (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)
diff -crN /png_original/libpng-1.2.32/pngerror.c /png/libpng-1.2.32.patched/pngerror.c
*** /png_original/libpng-1.2.32/pngerror.c	2009-03-15 23:58:15.000000000 +0600
--- /png/libpng-1.2.32.patched/pngerror.c	2009-03-09 08:31:42.000000000 +0600
***************
*** 245,256 ****
     {
  #  ifdef USE_FAR_KEYWORD
     {
!       jmp_buf jmpbuf;
!       png_memcpy(jmpbuf, png_ptr->jmpbuf, png_sizeof(jmp_buf));
!       longjmp(jmpbuf, 1);
     }
  #  else
!    longjmp(png_ptr->jmpbuf, 1);
  #  endif
     }
  #else
--- 245,256 ----
     {
  #  ifdef USE_FAR_KEYWORD
     {
!       jmp_buf PNG_jmpbuf;
!       png_memcpy(PNG_jmpbuf, png_ptr->PNG_jmpbuf, png_sizeof(jmp_buf));
!       longjmp(PNG_jmpbuf, 1);
     }
  #  else
!    longjmp(png_ptr->PNG_jmpbuf, 1);
  #  endif
     }
  #else
***************
*** 304,310 ****
  /* This function is called when the application wants to use another method
   * of handling errors and warnings.  Note that the error function MUST NOT
   * return to the calling routine or serious problems will occur.  The return
!  * method used in the default routine calls longjmp(png_ptr->jmpbuf, 1)
   */
  void PNGAPI
  png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
--- 304,310 ----
  /* This function is called when the application wants to use another method
   * of handling errors and warnings.  Note that the error function MUST NOT
   * return to the calling routine or serious problems will occur.  The return
!  * method used in the default routine calls longjmp(png_ptr->PNG_jmpbuf, 1)
   */
  void PNGAPI
  png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
diff -crN /png_original/libpng-1.2.32/pngread.c /png/libpng-1.2.32.patched/pngread.c
*** /png_original/libpng-1.2.32/pngread.c	2009-03-15 23:58:14.000000000 +0600
--- /png/libpng-1.2.32.patched/pngread.c	2009-03-09 08:31:42.000000000 +0600
***************
*** 41,47 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    jmp_buf jmpbuf;
  #endif
  #endif
  
--- 41,47 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    jmp_buf PNG_jmpbuf;
  #endif
  #endif
  
***************
*** 65,73 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(jmpbuf))
  #else
!    if (setjmp(png_ptr->jmpbuf))
  #endif
     {
        png_free(png_ptr, png_ptr->zbuf);
--- 65,73 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(PNG_jmpbuf))
  #else
!    if (setjmp(png_ptr->PNG_jmpbuf))
  #endif
     {
        png_free(png_ptr, png_ptr->zbuf);
***************
*** 81,87 ****
        return (NULL);
     }
  #ifdef USE_FAR_KEYWORD
!    png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf));
  #endif
  #endif
  
--- 81,87 ----
        return (NULL);
     }
  #ifdef USE_FAR_KEYWORD
!    png_memcpy(png_ptr->PNG_jmpbuf, PNG_jmpbuf, png_sizeof(jmp_buf));
  #endif
  #endif
  
***************
*** 164,174 ****
     a png_error() will longjmp here.  Since the jmpbuf is then meaningless we
     abort instead of returning. */
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(jmpbuf))
        PNG_ABORT();
!    png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf));
  #else
!    if (setjmp(png_ptr->jmpbuf))
        PNG_ABORT();
  #endif
  #endif
--- 164,174 ----
     a png_error() will longjmp here.  Since the jmpbuf is then meaningless we
     abort instead of returning. */
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(PNG_jmpbuf))
        PNG_ABORT();
!    png_memcpy(png_ptr->PNG_jmpbuf, PNG_jmpbuf, png_sizeof(jmp_buf));
  #else
!    if (setjmp(png_ptr->PNG_jmpbuf))
        PNG_ABORT();
  #endif
  #endif
***************
*** 267,273 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* save jump buffer and error functions */
!    png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     if (png_sizeof(png_struct) > png_struct_size)
--- 267,273 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* save jump buffer and error functions */
!    png_memcpy(tmp_jmp, png_ptr->PNG_jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     if (png_sizeof(png_struct) > png_struct_size)
***************
*** 282,288 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* restore jump buffer */
!    png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  
     /* added at libpng-1.2.6 */
--- 282,288 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* restore jump buffer */
!    png_memcpy(png_ptr->PNG_jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  
     /* added at libpng-1.2.6 */
***************
*** 1268,1274 ****
      * being used again.
      */
  #ifdef PNG_SETJMP_SUPPORTED
!    png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     error_fn = png_ptr->error_fn;
--- 1268,1274 ----
      * being used again.
      */
  #ifdef PNG_SETJMP_SUPPORTED
!    png_memcpy(tmp_jmp, png_ptr->PNG_jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     error_fn = png_ptr->error_fn;
***************
*** 1288,1294 ****
  #endif
  
  #ifdef PNG_SETJMP_SUPPORTED
!    png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  
  }
--- 1288,1294 ----
  #endif
  
  #ifdef PNG_SETJMP_SUPPORTED
!    png_memcpy(png_ptr->PNG_jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  
  }
diff -crN /png_original/libpng-1.2.32/pngwrite.c /png/libpng-1.2.32.patched/pngwrite.c
*** /png_original/libpng-1.2.32/pngwrite.c	2009-03-15 23:58:14.000000000 +0600
--- /png/libpng-1.2.32.patched/pngwrite.c	2009-03-09 08:31:42.000000000 +0600
***************
*** 457,463 ****
      png_structp png_ptr;
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    jmp_buf jmpbuf;
  #endif
  #endif
     int i;
--- 457,463 ----
      png_structp png_ptr;
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    jmp_buf PNG_jmpbuf;
  #endif
  #endif
     int i;
***************
*** 479,487 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(jmpbuf))
  #else
!    if (setjmp(png_ptr->jmpbuf))
  #endif
     {
        png_free(png_ptr, png_ptr->zbuf);
--- 479,487 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(PNG_jmpbuf))
  #else
!    if (setjmp(png_ptr->PNG_jmpbuf))
  #endif
     {
        png_free(png_ptr, png_ptr->zbuf);
***************
*** 490,496 ****
        return (NULL);
     }
  #ifdef USE_FAR_KEYWORD
!    png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf));
  #endif
  #endif
  
--- 490,496 ----
        return (NULL);
     }
  #ifdef USE_FAR_KEYWORD
!    png_memcpy(png_ptr->PNG_jmpbuf, PNG_jmpbuf, png_sizeof(jmp_buf));
  #endif
  #endif
  
***************
*** 560,570 ****
     a png_error() will longjmp here.  Since the jmpbuf is then meaningless we
     abort instead of returning. */
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(jmpbuf))
        PNG_ABORT();
!    png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf));
  #else
!    if (setjmp(png_ptr->jmpbuf))
        PNG_ABORT();
  #endif
  #endif
--- 560,570 ----
     a png_error() will longjmp here.  Since the jmpbuf is then meaningless we
     abort instead of returning. */
  #ifdef USE_FAR_KEYWORD
!    if (setjmp(PNG_jmpbuf))
        PNG_ABORT();
!    png_memcpy(png_ptr->PNG_jmpbuf, PNG_jmpbuf, png_sizeof(jmp_buf));
  #else
!    if (setjmp(png_ptr->PNG_jmpbuf))
        PNG_ABORT();
  #endif
  #endif
***************
*** 663,669 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* save jump buffer and error functions */
!    png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     if (png_sizeof(png_struct) > png_struct_size)
--- 663,669 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* save jump buffer and error functions */
!    png_memcpy(tmp_jmp, png_ptr->PNG_jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     if (png_sizeof(png_struct) > png_struct_size)
***************
*** 684,690 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* restore jump buffer */
!    png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  
     png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
--- 684,690 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* restore jump buffer */
!    png_memcpy(png_ptr->PNG_jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  
     png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
***************
*** 1113,1119 ****
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* reset structure */
!    png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     error_fn = png_ptr->error_fn;
--- 1113,1119 ----
  
  #ifdef PNG_SETJMP_SUPPORTED
     /* reset structure */
!    png_memcpy(tmp_jmp, png_ptr->PNG_jmpbuf, png_sizeof(jmp_buf));
  #endif
  
     error_fn = png_ptr->error_fn;
***************
*** 1133,1139 ****
  #endif
  
  #ifdef PNG_SETJMP_SUPPORTED
!    png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  }
  
--- 1133,1139 ----
  #endif
  
  #ifdef PNG_SETJMP_SUPPORTED
!    png_memcpy(png_ptr->PNG_jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
  #endif
  }
  
