diff --git a/SOURCES/0001-Revert-Correctly-decode-Adobe-CMYK-JPEGs-in-PDF-expo.patch b/SOURCES/0001-Revert-Correctly-decode-Adobe-CMYK-JPEGs-in-PDF-expo.patch
new file mode 100644
index 0000000..fb35d7d
--- /dev/null
+++ b/SOURCES/0001-Revert-Correctly-decode-Adobe-CMYK-JPEGs-in-PDF-expo.patch
@@ -0,0 +1,126 @@
+From bf597b89288b6271f56031d5a20bfaf59f146d4c Mon Sep 17 00:00:00 2001
+From: Bryce Harrington <bryce@bryceharrington.org>
+Date: Tue, 16 Oct 2018 09:13:23 -0700
+Subject: [PATCH] Revert "Correctly decode Adobe CMYK JPEGs in PDF export"
+
+From further testing and investigation it appears that many PDF viewers
+already have a workaround to invert Adobe CMYK JPEGs, so our generated
+PDFs display incorrectly with those viewers due to double-inversion.
+
+Further investigation will be needed to find a better solution that
+doesn't cause regression for some PDF viewers; perhaps PDF viewers that
+lack this inversion workaround should be changed to include it.  For now
+we'll drop the patch to avoid shipping the regression in 1.16.0.
+
+This reverts commit b207a932a2d3740984319dffd58a0791580597cd.
+
+Reference: https://bugs.freedesktop.org/show_bug.cgi?id=97612
+Fixes: https://gitlab.freedesktop.org/cairo/cairo/issues/156
+---
+ src/cairo-image-info-private.h |  1 -
+ src/cairo-image-info.c         | 21 ---------------------
+ src/cairo-pdf-surface.c        |  2 --
+ 3 files changed, 24 deletions(-)
+
+diff --git a/src/cairo-image-info-private.h b/src/cairo-image-info-private.h
+index 99cbbcc02..e64928e40 100644
+--- a/src/cairo-image-info-private.h
++++ b/src/cairo-image-info-private.h
+@@ -43,7 +43,6 @@ typedef struct _cairo_image_info {
+     int		 height;
+     int		 num_components;
+     int		 bits_per_component;
+-    int		 is_adobe_jpeg;
+ } cairo_image_info_t;
+ 
+ cairo_private cairo_int_status_t
+diff --git a/src/cairo-image-info.c b/src/cairo-image-info.c
+index 3b4cf6edb..d147e3723 100644
+--- a/src/cairo-image-info.c
++++ b/src/cairo-image-info.c
+@@ -67,9 +67,6 @@
+ #define SOF14 0xce
+ #define SOF15 0xcf
+ 
+-/* Start of tag markers */
+-#define APP14 0xee	/* Adobe */
+-
+ static const unsigned char *
+ _jpeg_skip_segment (const unsigned char *p)
+ {
+@@ -97,8 +94,6 @@ _cairo_image_info_get_jpeg_info (cairo_image_info_t	*info,
+ {
+     const unsigned char *p = data;
+ 
+-    info->is_adobe_jpeg = FALSE;
+-
+     while (p + 1 < data + length) {
+ 	if (*p != 0xff)
+ 	    return CAIRO_INT_STATUS_UNSUPPORTED;
+@@ -136,18 +131,6 @@ _cairo_image_info_get_jpeg_info (cairo_image_info_t	*info,
+ 	    _jpeg_extract_info (info, p);
+ 	    return CAIRO_STATUS_SUCCESS;
+ 
+-	case APP14:
+-	    /* "Adobe" tags segment indicates inverted CMYK (in
+-	     * CMYK images). */
+-	    if (p + 12 > data + length)
+-		return CAIRO_INT_STATUS_UNSUPPORTED;
+-
+-	    info->is_adobe_jpeg =
+-		(0 == strncmp((const char *)(p + 3), "Adobe", 5));
+-
+-	    p = _jpeg_skip_segment(p);
+-	    break;
+-
+ 	default:
+ 	    if (*p >= RST_begin && *p <= RST_end) {
+ 		p++;
+@@ -223,7 +206,6 @@ _jpx_extract_info (const unsigned char *p, cairo_image_info_t *info)
+     info->width = get_unaligned_be32 (p + 4);
+     info->num_components = (p[8] << 8) + p[9];
+     info->bits_per_component = p[10];
+-    info->is_adobe_jpeg = FALSE;
+ }
+ 
+ cairo_int_status_t
+@@ -301,8 +283,6 @@ _cairo_image_info_get_png_info (cairo_image_info_t     *info,
+     p += 4;
+     info->height = get_unaligned_be32 (p);
+ 
+-    info->is_adobe_jpeg = FALSE;
+-
+     return CAIRO_STATUS_SUCCESS;
+ }
+ 
+@@ -415,7 +395,6 @@ _jbig2_extract_info (cairo_image_info_t *info, const unsigned char *p)
+     info->height = get_unaligned_be32 (p + 4);
+     info->num_components = 1;
+     info->bits_per_component = 1;
+-    info->is_adobe_jpeg = FALSE;
+ }
+ 
+ cairo_int_status_t
+diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
+index ab6781340..7eb61aa1e 100644
+--- a/src/cairo-pdf-surface.c
++++ b/src/cairo-pdf-surface.c
+@@ -3169,7 +3169,6 @@ _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t              *surface,
+ 						 "   /Height %d\n"
+ 						 "   /ColorSpace %s\n"
+ 						 "   /Interpolate %s\n"
+-						 "%s"
+ 						 "   /BitsPerComponent %d\n"
+ 						 "%s"
+ 						 "   /Filter /DCTDecode\n",
+@@ -3177,7 +3176,6 @@ _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t              *surface,
+ 						 info.height,
+ 						 colorspace,
+ 						 surface_entry->interpolate ? "true" : "false",
+-						 info.is_adobe_jpeg && info.num_components == 4 ? "   /Decode [ 1 0 1 0 1 0 1 0 ]\n" : "",
+ 						 info.bits_per_component,
+ 						 smask_buf);
+     }
+-- 
+2.20.1
+
diff --git a/SPECS/cairo.spec b/SPECS/cairo.spec
index 3c05e01..e91572d 100644
--- a/SPECS/cairo.spec
+++ b/SPECS/cairo.spec
@@ -11,7 +11,7 @@
 
 Name:		cairo
 Version:	1.15.12
-Release:	3%{?dist}
+Release:	4%{?dist}
 Summary:	A 2D graphics library
 
 License:	LGPLv2 or MPLv1.1
@@ -20,6 +20,7 @@ Source0:	http://cairographics.org/snapshots/%{name}-%{version}.tar.xz
 
 # Backported from upstream
 Patch0:         0001-Fix-assertion-failure-in-the-freetype-backend.patch
+Patch1:         0001-Revert-Correctly-decode-Adobe-CMYK-JPEGs-in-PDF-expo.patch
 
 Patch3:         cairo-multilib.patch
 
@@ -178,6 +179,10 @@ find $RPM_BUILD_ROOT -name '*.la' -delete
 %{_libdir}/cairo/
 
 %changelog
+* Mon Mar 18 2019 Marek Kasik <mkasik@redhat.com> - 1.15.12-4
+- Do not inverse colors of Adobe CMYK JPEGs in PDF export
+- Resolves: #1688396
+
 * Mon Sep 10 2018 Kalev Lember <klember@redhat.com> - 1.15.12-3
 - Rebuild against new freetype
 - Resolves: #1625906