diff --git a/ANNOUNCE b/ANNOUNCE
index 90d3cd8..b1ed620 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.24rc01 - July 25, 2016
+Libpng 1.6.24rc02 - August 1, 2016
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -8,20 +8,20 @@
 Source files with LF line endings (for Unix/Linux) and with a
 "configure" script
 
-   1.6.24rc01.tar.xz (LZMA-compressed, recommended)
-   1.6.24rc01.tar.gz
+   1.6.24rc02.tar.xz (LZMA-compressed, recommended)
+   1.6.24rc02.tar.gz
 
 Source files with CRLF line endings (for Windows), without the
 "configure" script
 
-   lp1624r01.7z  (LZMA-compressed, recommended)
-   lp1624r01.zip
+   lp1624r02.7z  (LZMA-compressed, recommended)
+   lp1624r02.zip
 
 Other information:
 
-   1.6.24rc01-README.txt
-   1.6.24rc01-LICENSE.txt
-   libpng-1.6.24rc01-*.asc (armored detached GPG signatures)
+   1.6.24rc02-README.txt
+   1.6.24rc02-LICENSE.txt
+   libpng-1.6.24rc02-*.asc (armored detached GPG signatures)
 
 Changes since the last public release (1.6.23):
 
@@ -93,6 +93,9 @@
 Version 1.6.24rc01 [July 25, 2016]
   No changes.
 
+Version 1.6.24rc02 [August 1, 2016]
+  Conditionally compile SSE2 headers in contrib/intel/intel_sse.patch
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/CHANGES b/CHANGES
index c1bef6c..1d5d351 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5664,6 +5664,9 @@
 Version 1.6.24rc01 [July 25, 2016]
   No changes.
 
+Version 1.6.24rc02 [August 1, 2016]
+  Conditionally compile SSE2 headers in contrib/intel/intel_sse.patch
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/contrib/intel/intel_sse.patch b/contrib/intel/intel_sse.patch
index 99ccd54..2f31a06 100644
--- a/contrib/intel/intel_sse.patch
+++ b/contrib/intel/intel_sse.patch
@@ -77,8 +77,8 @@
  #   Versioned symbols and restricted exports
  if HAVE_SOLARIS_LD
 diff --git a/pngpriv.h b/pngpriv.h
---- a/pngpriv.h	2016-05-31 09:20:34.442885047 -0500
-+++ b/pngpriv.h	2016-05-31 09:14:54.583492341 -0500
+--- a/pngpriv.h	2016-07-25 07:49:33.000000000 -0500
++++ b/pngpriv.h	2016-07-31 21:07:24.040395258 -0500
 @@ -177,16 +177,52 @@
  #  endif /* !PNG_ARM_NEON_IMPLEMENTATION */
  
@@ -132,7 +132,7 @@
   * PNG_BUILD_DLL must not be set.  To avoid the code below kicking in build a
   * static library of libpng then link the DLL against that.
   */
-@@ -1184,16 +1220,29 @@ PNG_INTERNAL_FUNCTION(void,png_read_filt
+@@ -1184,16 +1220,31 @@ PNG_INTERNAL_FUNCTION(void,png_read_filt
      row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
  PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_neon,(png_row_infop
      row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
@@ -141,6 +141,7 @@
  PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_neon,(png_row_infop
      row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
  
++#if PNG_INTEL_SSE_IMPLEMENTATION > 0
 +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop
 +    row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
 +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop
@@ -153,6 +154,7 @@
 +    row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
 +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop
 +    row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
++#endif
 +
  /* Choose the best filter to use and filter the row data */
  PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr,
@@ -162,7 +164,7 @@
  PNG_INTERNAL_FUNCTION(void,png_read_IDAT_data,(png_structrp png_ptr,
     png_bytep output, png_alloc_size_t avail_out),PNG_EMPTY);
     /* Read 'avail_out' bytes of data from the IDAT stream.  If the output buffer
-@@ -1910,16 +1959,18 @@ PNG_INTERNAL_FUNCTION(void, PNG_FILTER_O
+@@ -1910,16 +1961,20 @@ PNG_INTERNAL_FUNCTION(void, PNG_FILTER_O
     /* Just declare the optimization that will be used */
  #else
     /* List *all* the possible optimizations here - this branch is required if
@@ -171,8 +173,10 @@
      */
  PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon,
     (png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
++#  if PNG_INTEL_SSE_IMPLEMENTATION > 0
 +PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2,
 +   (png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
++#  endif
  #endif
  
  PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr,
