diff --git a/src/terminal-screen-container.c b/src/terminal-screen-container.c
index 73d9b067..68e4a389 100644
--- a/src/terminal-screen-container.c
+++ b/src/terminal-screen-container.c
@@ -94,6 +94,20 @@ terminal_screen_container_style_updated (GtkWidget *widget)
   }
 }
 
+static gboolean
+scrollbar_changed_2 (gpointer data)
+{
+  gtk_widget_queue_draw (GTK_WIDGET (data));
+  return FALSE;
+}
+
+static void
+scrollbar_changed (GtkWidget *widget,
+                   gpointer data)
+{
+  g_timeout_add (0, scrollbar_changed_2, widget);
+}
+
 #endif /* !USE_SCROLLED_WINDOW */
 
 /* Class implementation */
@@ -143,6 +157,11 @@ terminal_screen_container_constructed (GObject *object)
   priv->vscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL,
                                         gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (priv->screen)));
 
+  g_signal_connect (priv->vscrollbar,
+                    "value-changed",
+                    G_CALLBACK (scrollbar_changed),
+                    NULL);
+
   gtk_box_pack_start (GTK_BOX (priv->hbox), GTK_WIDGET (priv->screen), TRUE, TRUE, 0);
   gtk_box_pack_start (GTK_BOX (priv->hbox), priv->vscrollbar, FALSE, FALSE, 0);
 
