diff --git a/SOURCES/tigervnc-argb-runtime-ximage-byteorder-selection.patch b/SOURCES/tigervnc-argb-runtime-ximage-byteorder-selection.patch
new file mode 100644
index 0000000..24fc077
--- /dev/null
+++ b/SOURCES/tigervnc-argb-runtime-ximage-byteorder-selection.patch
@@ -0,0 +1,43 @@
+From 7ab92639848a6059e2b6b88499b008b9606f3af6 Mon Sep 17 00:00:00 2001
+From: johnmartin-oracle <55413843+johnmartin-oracle@users.noreply.github.com>
+Date: Thu, 27 Aug 2020 22:30:23 -0400
+Subject: [PATCH] Update Surface_X11.cxx
+
+Runtime sellection of ARGB  XImage byte order
+---
+ vncviewer/Surface_X11.cxx | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/vncviewer/Surface_X11.cxx b/vncviewer/Surface_X11.cxx
+index 6562634dc..8944c3f71 100644
+--- a/vncviewer/Surface_X11.cxx
++++ b/vncviewer/Surface_X11.cxx
+@@ -123,17 +123,17 @@ void Surface::alloc()
+   // we find such a format
+   templ.type = PictTypeDirect;
+   templ.depth = 32;
+-#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+-  templ.direct.alpha = 0;
+-  templ.direct.red   = 8;
+-  templ.direct.green = 16;
+-  templ.direct.blue  = 24;
+-#else
+-  templ.direct.alpha = 24;
+-  templ.direct.red   = 16;
+-  templ.direct.green = 8;
+-  templ.direct.blue  = 0;
+-#endif
++  if (XImageByteOrder(fl_display) == MSBFirst) {
++    templ.direct.alpha = 0;
++    templ.direct.red   = 8;
++    templ.direct.green = 16;
++    templ.direct.blue  = 24;
++  } else {
++    templ.direct.alpha = 24;
++    templ.direct.red   = 16;
++    templ.direct.green = 8;
++    templ.direct.blue  = 0;
++  }
+   templ.direct.alphaMask = 0xff;
+   templ.direct.redMask = 0xff;
+   templ.direct.greenMask = 0xff;
diff --git a/SPECS/tigervnc.spec b/SPECS/tigervnc.spec
index 3a6681f..999e5f4 100644
--- a/SPECS/tigervnc.spec
+++ b/SPECS/tigervnc.spec
@@ -5,7 +5,7 @@
 
 Name:           tigervnc
 Version:        1.11.0
-Release:        9%{?dist}
+Release:        10%{?dist}
 Summary:        A TigerVNC remote display system
 
 %global _hardened_build 1
@@ -38,6 +38,7 @@ Patch51:        tigervnc-systemd-service.patch
 Patch52:        tigervnc-correctly-start-vncsession-as-daemon.patch
 Patch53:        tigervnc-selinux-missing-compression-and-correct-location.patch
 Patch54:        tigervnc-selinux-policy-improvements.patch
+Patch55:        tigervnc-argb-runtime-ximage-byteorder-selection.patch
 
 # This is tigervnc-%%{version}/unix/xserver116.patch rebased on the latest xorg
 Patch100:       tigervnc-xserver120.patch
@@ -189,6 +190,7 @@ popd
 %patch52 -p1 -b .correctly-start-vncsession-as-daemon
 %patch53 -p1 -b .selinux-missing-compression-and-correct-location
 %patch54 -p1 -b .selinux-policy-improvements
+%patch55 -p1 -b .argb-runtime-ximage-byteorder-selection
 
 %build
 %ifarch sparcv9 sparc64 s390 s390x
@@ -348,6 +350,10 @@ fi
 
 %changelog
 * Mon Jul 19 2021 Jan Grulich <jgrulich@redhat.com> - 1.11.0-9
+- Fix endianness issue
+  Resolves: bz#2022475
+
+* Mon Jul 19 2021 Jan Grulich <jgrulich@redhat.com> - 1.11.0-9
 - Fix logout from VNC session using vncserver
   Resolves: bz#1983706