diff --git a/SOURCES/tigervnc-broken-scrolling.patch b/SOURCES/tigervnc-broken-scrolling.patch
new file mode 100644
index 0000000..97bb92c
--- /dev/null
+++ b/SOURCES/tigervnc-broken-scrolling.patch
@@ -0,0 +1,31 @@
+From e8d25d83463805c0f6ef623dba2ac9a276df3587 Mon Sep 17 00:00:00 2001
+From: Luke Shumaker <lukeshu@lukeshu.com>
+Date: Tue, 23 May 2017 02:16:27 -0400
+Subject: vncviewer: Fix fullscreen scrolling
+
+
+diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
+index 47fe8f89..946b162c 100644
+--- a/vncviewer/DesktopWindow.cxx
++++ b/vncviewer/DesktopWindow.cxx
+@@ -1120,11 +1120,6 @@ void DesktopWindow::scrollTo(int x, int y)
+   hscroll->value(x);
+   vscroll->value(y);
+ 
+-  if (!hscroll->visible())
+-    x = -viewport->x();
+-  if (!vscroll->visible())
+-    y = -viewport->y();
+-
+   // Scrollbar position results in inverse movement of
+   // the viewport widget
+   x = -x;
+@@ -1189,7 +1184,7 @@ void DesktopWindow::handleEdgeScroll(void *data)
+   if ((dx == 0) && (dy == 0))
+     return;
+ 
+-  self->scrollTo(self->hscroll->value() + dx, self->vscroll->value() + dy);
++  self->scrollTo(self->hscroll->value() - dx, self->vscroll->value() - dy);
+ 
+   Fl::repeat_timeout(0.1, handleEdgeScroll, data);
+ }
diff --git a/SOURCES/tigervnc-let-user-know-about-not-using-view-only-password.patch b/SOURCES/tigervnc-let-user-know-about-not-using-view-only-password.patch
new file mode 100644
index 0000000..e28ffa9
--- /dev/null
+++ b/SOURCES/tigervnc-let-user-know-about-not-using-view-only-password.patch
@@ -0,0 +1,13 @@
+diff --git a/unix/vncpasswd/vncpasswd.cxx b/unix/vncpasswd/vncpasswd.cxx
+index 16c925ee..6398121e 100644
+--- a/unix/vncpasswd/vncpasswd.cxx
++++ b/unix/vncpasswd/vncpasswd.cxx
+@@ -150,6 +150,8 @@ int main(int argc, char** argv)
+     char yesno[3];
+     if (fgets(yesno, 3, stdin) != NULL && (yesno[0] == 'y' || yesno[0] == 'Y')) {
+       obfuscatedReadOnly = readpassword();
++    } else {
++      fprintf(stderr, "A view-only password is not used\n");
+     }
+
+     FILE* fp = fopen(fname,"w");
diff --git a/SOURCES/vncserver.service b/SOURCES/vncserver.service
index 45fd823..5077e82 100644
--- a/SOURCES/vncserver.service
+++ b/SOURCES/vncserver.service
@@ -4,7 +4,8 @@
 # 1. Copy this file to /etc/systemd/system/vncserver@.service
 # 2. Replace <USER> with the actual user name and edit vncserver
 #    parameters appropriately
-#   ("User=<USER>" and "/home/<USER>/.vnc/%H%i.pid")
+#    (ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
+#     PIDFile=/home/<USER>/.vnc/%H%i.pid)
 # 3. Run `systemctl daemon-reload`
 # 4. Run `systemctl enable vncserver@:<display>.service`
 #
@@ -36,13 +37,12 @@ After=syslog.target network.target
 
 [Service]
 Type=forking
-User=<USER>
 
 # Clean any existing files in /tmp/.X11-unix environment
-ExecStartPre=-/usr/bin/vncserver -kill %i
-ExecStart=/usr/bin/vncserver %i
+ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
 PIDFile=/home/<USER>/.vnc/%H%i.pid
-ExecStop=-/usr/bin/vncserver -kill %i
+ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
 
 [Install]
 WantedBy=multi-user.target
diff --git a/SPECS/tigervnc.spec b/SPECS/tigervnc.spec
index de456e6..16987f9 100644
--- a/SPECS/tigervnc.spec
+++ b/SPECS/tigervnc.spec
@@ -1,6 +1,6 @@
 Name:           tigervnc
 Version:        1.8.0
-Release:        2%{?dist}
+Release:        5%{?dist}
 Summary:        A TigerVNC remote display system
 
 Group:          User Interface/Desktops
@@ -53,7 +53,9 @@ Patch4:        tigervnc-cursor.patch
 Patch6:        tigervnc-xstartup.patch
 Patch7:        tigervnc-1.3.1-CVE-2014-8240.patch
 Patch8:        tigervnc-1.3.1-do-not-die-when-port-is-already-taken.patch
-Patch9:        tigervnc-working-tls-on-fips-systems.patch
+Patch9:        tigervnc-let-user-know-about-not-using-view-only-password.patch
+Patch10:       tigervnc-working-tls-on-fips-systems.patch
+Patch11:       tigervnc-broken-scrolling.patch
 
 # This is tigervnc-%{version}/unix/xserver116.patch rebased on the latest xorg
 Patch100:       tigervnc-xserver119.patch
@@ -180,8 +182,14 @@ popd
 # Bug 1322155 - Xorg socket conflict for VNC port 5901
 %patch8 -p1 -b .do-not-die-when-port-is-already-taken
 
-# Bug 1501165  - VNC cannot be used when FIPS is enabled because DH_BITS is too low
-%patch9 -p1 -b .working-tls-on-fips-systems
+# Bug 1447555 - view-only accepts enter, unclear whether default password is generated or not
+%patch9 -p1 -b .let-user-know-about-not-using-view-only-password
+
+# Bug 1492107 - VNC cannot be used when FIPS is enabled because DH_BITS is too low
+%patch10 -p1 -b .working-tls-on-fips-systems
+
+# Bug 1499018 - bump scrolling is broken in tigervnc 1.8.0
+%patch11 -p1 -b .broken-scrolling
 
 %build
 %ifarch sparcv9 sparc64 s390 s390x
@@ -346,9 +354,21 @@ fi
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
-* Thu Oct 12 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-2
+* Thu Jan 18 2018 Jan Grulich <jgrulich@redhat.com> - 1.8.0-5
+- Fix broken scrolling
+  Resolves: bz#1499018
+
+* Fri Oct 27 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-4
+- Properly initialize tigervnc when started as systemd service
+  Resolves: bz#1506273
+
+* Tue Sep 19 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-3
 - Make TLS work on FIPS systems
-  Resolves: bz#1501165
+  Resolves: bz#1492107
+
+* Tue Sep 12 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-2
+- Let user know that view-only password will not be used
+  Resolves: bz#1447555
 
 * Wed May 17 2017 Jan Grulich <jgrulich@redhat.com> - 1.8.0-1
 - Update to 1.8.0