[libpng16]Check ZLIB_VERNUM for mismatches, enclose #error in quotes
diff --git a/ANNOUNCE b/ANNOUNCE
index eb38d20..ab2651a 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -71,6 +71,7 @@
       invalid values.
   Attempt to detect configuration issues with pngdeflate, which requires
     both the correct libpng and the correct zlib to function correctly.
+  Check ZLIB_VERNUM for mismatches, enclose #error in quotes
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index d022e23..96f9d03 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4554,6 +4554,7 @@
       invalid values.
   Attempt to detect configuration issues with pngdeflate, which requires
     both the correct libpng and the correct zlib to function correctly.
+  Check ZLIB_VERNUM for mismatches, enclose #error in quotes
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/contrib/tools/pngdeflate.c b/contrib/tools/pngdeflate.c
index ff9fdb4..c30a7ee 100644
--- a/contrib/tools/pngdeflate.c
+++ b/contrib/tools/pngdeflate.c
@@ -26,14 +26,14 @@
 #endif
 
 #if PNG_LIBPNG_VER < 10603 /* 1.6.3 */
-#  error pngdeflate will not work with libpng versions prior to 1.6.3
+#  error "pngdeflate will not work with libpng versions prior to 1.6.3"
 #endif
 
 #ifdef PNG_READ_SUPPORTED
 #include <zlib.h>
 
 #ifndef PNG_MAXIMUM_INFLATE_WINDOW
-#  error pngdeflate not supported in this libpng version
+#  error "pngdeflate not supported in this libpng version"
 #endif
 
 #if PNG_ZLIB_VERNUM >= 0x1240
diff --git a/pngpriv.h b/pngpriv.h
index d06284d..fcfea42 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -694,6 +694,24 @@
 #include "pngstruct.h"
 #include "pnginfo.h"
 
+/* Validate the include paths - the include path used to generate pnglibconf.h
+ * must match that used in the build, or we must be using pnglibconf.h.prebuilt:
+ */
+#if PNG_ZLIB_VERNUM != 0 && PNG_ZLIB_VERNUM != ZLIB_VERNUM
+#  error ZLIB_VERNUM != PNG_ZLIB_VERNUM \
+      "-I (include path) error: see the notes in pngpriv.h"
+   /* This means that when pnglibconf.h was built the copy of zlib.h that it
+    * used is not the same as the one being used here.  Because the build of
+    * libpng makes decisions to use inflateInit2 and inflateReset2 based on the
+    * zlib version number and because this affects handling of certain broken
+    * PNG files the -I directives must match.
+    *
+    * The most likely explanation is that you passed a -I in CFLAGS, this will
+    * not work; all the preprocessor directories and in particular all the -I
+    * directives must be in CPPFLAGS.
+    */
+#endif
+
 /* This is used for 16 bit gamma tables -- only the top level pointers are
  * const; this could be changed:
  */