diff -ubr tmp/iscan-2.30.3/configure.ac iscan-2.30.3/configure.ac
--- tmp/iscan-2.30.3/configure.ac	2016-08-19 09:14:08.000000000 +0000
+++ iscan-2.30.3/configure.ac	2017-07-23 11:36:57.946159136 +0000
@@ -129,7 +129,7 @@
 	    GTK_CFLAGS=`echo $GTK_CFLAGS | sed -e "s|-I/usr/include/pixman-[0-9.]*||"`
 	    GTK_CFLAGS=`echo $GTK_CFLAGS | sed -e "s|-I/usr/include/freetype2||"`
 	    GTK_CFLAGS=`echo $GTK_CFLAGS | sed -e "s|-I/usr/include/directfb||"`
-	    GTK_CFLAGS=`echo $GTK_CFLAGS | sed -e "s|-I/usr/include/libpng12||"`]
+	    GTK_CFLAGS=`echo $GTK_CFLAGS | sed -e "s|-I/usr/include/libpng16||"`]
 	 fi])
 
 PKG_CHECK_MODULES(GIMP, gimp-2.0,
Only in iscan-2.30.3/debian: compat
diff -ubr tmp/iscan-2.30.3/debian/control iscan-2.30.3/debian/control
--- tmp/iscan-2.30.3/debian/control	2016-08-19 09:14:20.000000000 +0000
+++ iscan-2.30.3/debian/control	2017-07-23 10:58:33.440966112 +0000
@@ -25,7 +25,7 @@
 Section: non-free/graphics
 Priority: extra
 Maintainer: AVASYS CORPORATION <linux-scanner@epson.jp>
-Build-Depends: cdbs, debhelper (>= 5.0.42), libsane-dev, libltdl7-dev | libltdl3-dev, libgtk2.0-dev, libpng-dev, libjpeg-dev, libgimp2.0-dev, libtiff4-dev, libxml2-dev, libusb-1.0-0-dev
+Build-Depends: cdbs, debhelper (>= 5.0.42), libsane-dev, libltdl7-dev | libltdl3-dev, libgtk2.0-dev, libpng-dev, libjpeg-dev, libgimp2.0-dev, libtiff4-dev | libtiff5-dev, libxml2-dev, libusb-1.0-0-dev
 Standards-Version: 3.7.2
 
 Package: iscan
diff -ubr tmp/iscan-2.30.3/debian/control.in iscan-2.30.3/debian/control.in
--- tmp/iscan-2.30.3/debian/control.in	2016-08-19 09:14:07.000000000 +0000
+++ iscan-2.30.3/debian/control.in	2017-07-23 13:53:59.504207249 +0000
@@ -25,7 +25,7 @@
 Section: non-free/graphics
 Priority: extra
 Maintainer: @scm_deb_maint@ <@scm_deb_maint_email@>
-Build-Depends: cdbs, debhelper (>= 5.0.42), libsane-dev, libltdl7-dev | libltdl3-dev, libgtk2.0-dev, libpng-dev, libjpeg-dev, libgimp2.0-dev, libtiff4-dev, libxml2-dev, libusb-1.0-0-dev
+Build-Depends: cdbs, debhelper (>= 5.0.42), libsane-dev, libltdl7-dev | libltdl3-dev, libgtk2.0-dev, libpng-dev, libjpeg-dev, libgimp2.0-dev, libtiff4-dev | libtiff5-dev, libxml2-dev, libusb-1.0-0-dev
 Standards-Version: 3.7.2
 
 Package: @PACKAGE_TARNAME@
diff -ubr tmp/iscan-2.30.3/frontend/Makefile.am iscan-2.30.3/frontend/Makefile.am
--- tmp/iscan-2.30.3/frontend/Makefile.am	2016-08-19 09:14:07.000000000 +0000
+++ iscan-2.30.3/frontend/Makefile.am	2017-07-23 13:33:03.030835012 +0000
@@ -37,6 +37,7 @@
 	@LIBLTDL@ \
 	@GTK_LIBS@ \
 	@GDK_IMLIB_LIBS@ \
+        -lpng16 \
 	$(top_builddir)/non-free/libesmod.so
 iscan_SOURCES = \
 	$(iscan_source_files)
diff -ubr tmp/iscan-2.30.3/frontend/Makefile.in iscan-2.30.3/frontend/Makefile.in
--- tmp/iscan-2.30.3/frontend/Makefile.in	2016-08-19 09:14:14.000000000 +0000
+++ iscan-2.30.3/frontend/Makefile.in	2017-07-23 13:35:57.154173736 +0000
@@ -303,6 +303,7 @@
 @ENABLE_FRONTEND_TRUE@	@LIBLTDL@ \
 @ENABLE_FRONTEND_TRUE@	@GTK_LIBS@ \
 @ENABLE_FRONTEND_TRUE@	@GDK_IMLIB_LIBS@ \
+@ENABLE_FRONTEND_TRUE@	-lpng16 \
 @ENABLE_FRONTEND_TRUE@	$(top_builddir)/non-free/libesmod.so
 
 @ENABLE_FRONTEND_TRUE@iscan_SOURCES = \
diff -ubr tmp/iscan-2.30.3/lib/jpegstream.cc iscan-2.30.3/lib/jpegstream.cc
--- tmp/iscan-2.30.3/lib/jpegstream.cc	2016-08-19 09:14:06.000000000 +0000
+++ iscan-2.30.3/lib/jpegstream.cc	2017-07-23 11:00:47.030283515 +0000
@@ -80,9 +80,9 @@
         // FIXME: assumes that _bits == 1, whereas the condition for
         //        _scanline to be true, see write_init (), requires
         //        only that _bits != 8.
-        for (unsigned int i = 0; i < _h_sz; ++i)
+        for (long unsigned int i = 0; i < _h_sz; ++i)
           {
-            div_t index = div (i, 8 * sizeof (JSAMPLE));
+            std::ldiv_t index = std::ldiv (i, 8 * sizeof (JSAMPLE));
             int offset = 8 * sizeof (JSAMPLE) - 1 - index.rem;
             _scanline[i] = ((line[index.quot] & (1 << offset))
                             ? 0 : ~0);
diff -ubr tmp/iscan-2.30.3/lib/pngstream.cc iscan-2.30.3/lib/pngstream.cc
--- tmp/iscan-2.30.3/lib/pngstream.cc	2016-08-19 09:14:06.000000000 +0000
+++ iscan-2.30.3/lib/pngstream.cc	2017-07-23 16:34:24.374877979 +0000
@@ -83,7 +83,7 @@
 #if HAVE_PNG_H
     set_error_handler (_png, _info);
 
-    if (_header && !_footer && _png->num_rows == _png->flush_rows)
+    if (_header && !_footer )
       {
         lib->write_end (_png, _info);
         _footer = true;
@@ -97,9 +97,9 @@
   bool
   pngstream::is_usable (void)
   {
-    if (lib)
+    if (lib && lib->is_usable)
       {
-        return lib->is_usable;
+        return true;
       }
 
     lib = new (std::nothrow) png_lib_handle ();
@@ -118,7 +118,7 @@
         // to a "file not found" error when calling dlopen.  We just
         // dlopen the libz library explicitly to work around this.
         basic_imgstream::dlopen ("libz");
-        basic_imgstream::dlopen ("libpng12", validate);
+        basic_imgstream::dlopen ("libpng16", validate);
       }
     catch (std::runtime_error& e)
       {
diff -ubr tmp/iscan-2.30.3/lib/tests/Makefile.in iscan-2.30.3/lib/tests/Makefile.in
--- tmp/iscan-2.30.3/lib/tests/Makefile.in	2016-08-19 09:14:14.000000000 +0000
+++ iscan-2.30.3/lib/tests/Makefile.in	2017-07-23 13:39:04.844179548 +0000
@@ -249,7 +249,7 @@
 
 test_pcx_LDADD = \
 	../libimage-stream.la \
-	-lstdc++
+	-lstdc++ -lpng16
 
 test_pcx_SOURCES = \
 	test-pcx.cc \
Only in iscan-2.30.3/non-free: libesmod-x86_64.so
Only in iscan-2.30.3/non-free: libesmod.so
