diff --git a/SOURCES/tigervnc-provide-correct-dimensions-for-xshm-setup.patch b/SOURCES/tigervnc-provide-correct-dimensions-for-xshm-setup.patch
new file mode 100644
index 0000000..c4258a9
--- /dev/null
+++ b/SOURCES/tigervnc-provide-correct-dimensions-for-xshm-setup.patch
@@ -0,0 +1,44 @@
+diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx
+index 2b934c5..3d47163 100644
+--- a/vncviewer/PlatformPixelBuffer.cxx
++++ b/vncviewer/PlatformPixelBuffer.cxx
+@@ -43,7 +43,7 @@ PlatformPixelBuffer::PlatformPixelBuffer(int width, int height) :
+ #endif
+ {
+ #if !defined(WIN32) && !defined(__APPLE__)
+-  if (!setupShm()) {
++  if (!setupShm(width, height)) {
+     xim = XCreateImage(fl_display, CopyFromParent, 32,
+                        ZPixmap, 0, 0, width, height, 32, 0);
+     if (!xim)
+@@ -139,7 +139,7 @@ static int XShmAttachErrorHandler(Display *dpy, XErrorEvent *error)
+   return 0;
+ }
+ 
+-bool PlatformPixelBuffer::setupShm()
++bool PlatformPixelBuffer::setupShm(int width, int height)
+ {
+   int major, minor;
+   Bool pixmaps;
+@@ -156,7 +156,7 @@ bool PlatformPixelBuffer::setupShm()
+   shminfo = new XShmSegmentInfo;
+ 
+   xim = XShmCreateImage(fl_display, CopyFromParent, 32,
+-                        ZPixmap, 0, shminfo, width(), height());
++                        ZPixmap, 0, shminfo, width, height);
+   if (!xim)
+     goto free_shminfo;
+ 
+diff --git a/vncviewer/PlatformPixelBuffer.h b/vncviewer/PlatformPixelBuffer.h
+index f9038cd..ec439f6 100644
+--- a/vncviewer/PlatformPixelBuffer.h
++++ b/vncviewer/PlatformPixelBuffer.h
+@@ -53,7 +53,7 @@ protected:
+ 
+ #if !defined(WIN32) && !defined(__APPLE__)
+ protected:
+-  bool setupShm();
++  bool setupShm(int width, int height);
+ 
+ protected:
+   XShmSegmentInfo *shminfo;
diff --git a/SPECS/tigervnc.spec b/SPECS/tigervnc.spec
index 2d291c1..7356149 100644
--- a/SPECS/tigervnc.spec
+++ b/SPECS/tigervnc.spec
@@ -1,6 +1,6 @@
 Name:           tigervnc
 Version:        1.9.0
-Release:        14%{?dist}
+Release:        15%{?dist}
 Summary:        A TigerVNC remote display system
 
 %global _hardened_build 1
@@ -30,6 +30,8 @@ Patch11:        tigervnc-utilize-system-crypto-policies.patch
 Patch12:        tigervnc-passwd-crash-with-malloc-checks.patch
 Patch13:        tigervnc-vncserver-do-not-return-returncode-indicating-error.patch
 
+Patch14:        tigervnc-provide-correct-dimensions-for-xshm-setup.patch
+
 Patch50:        tigervnc-covscan.patch
 
 # Security fixes
@@ -214,6 +216,8 @@ popd
 %patch207 -p1 -b .be-defensive-about-overflows-in-stream-objects
 %patch208 -p1 -b .CVE-2019-15695
 
+%patch14  -p1 -b .tigervnc-provide-correct-dimensions-for-xshm-setup
+
 %build
 %ifarch sparcv9 sparc64 s390 s390x
 export CFLAGS="$RPM_OPT_FLAGS -fPIC"
@@ -368,6 +372,14 @@ install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-libvnc.c
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
+* Thu Apr 22 2020 Jan Grulich <jgrulich@redhat.com> - 1.9.0-15
+- Bump build version
+  Resolves: bz#1819877
+  Resolves: bz#1819879
+  Resolves: bz#1819882
+  Resolves: bz#1819886
+  Resolves: bz#1819884
+
 * Thu Apr 09 2020 Jan Grulich <jgrulich@redhat.com> - 1.9.0-14
 - Bump build version
   Resolves: bz#1819877