Index: gtk/gtknotebook.c
===================================================================
--- gtk/gtknotebook.c	(Revision 20414)
+++ gtk/gtknotebook.c	(Arbeitskopie)
@@ -4538,6 +4538,7 @@ gtk_notebook_paint (GtkWidget    *widget
   GtkNotebookPage *page;
   GList *children;
   gboolean showarrow;
+  GString *detail;
   gint width, height;
   gint x, y;
   gint border_width = GTK_CONTAINER (widget)->border_width;
@@ -4627,13 +4628,36 @@ gtk_notebook_paint (GtkWidget    *widget
 	  break;
 	}
     }
+
+  showarrow = FALSE;
+  children = gtk_notebook_search_page (notebook, NULL, step, TRUE);
+  while (children)
+    {
+      page = children->data;
+      children = gtk_notebook_search_page (notebook, children,
+					   step, TRUE);
+      if (!GTK_WIDGET_VISIBLE (page->child))
+	continue;
+      if (!GTK_WIDGET_MAPPED (page->tab_label))
+	showarrow = TRUE;
+    }
+
+  detail = g_string_new ("notebook");
+  if (showarrow && notebook->scrollable)
+    {
+      g_string_append (detail, "_arrow");
+      if (notebook->has_before_previous || notebook->has_after_previous)
+        g_string_append (detail, "_left");
+      if (notebook->has_before_next || notebook->has_after_next)
+        g_string_append (detail, "_right");
+    }
   gtk_paint_box_gap (widget->style, widget->window,
 		     GTK_STATE_NORMAL, GTK_SHADOW_OUT,
-		     area, widget, "notebook",
+		     area, widget, detail->str,
 		     x, y, width, height,
 		     tab_pos, gap_x, gap_width);
+  g_string_free (detail, TRUE);
 
-  showarrow = FALSE;
   children = gtk_notebook_search_page (notebook, NULL, step, TRUE);
   while (children)
     {
@@ -4642,8 +4666,6 @@ gtk_notebook_paint (GtkWidget    *widget
 					   step, TRUE);
       if (!GTK_WIDGET_VISIBLE (page->child))
 	continue;
-      if (!GTK_WIDGET_MAPPED (page->tab_label))
-	showarrow = TRUE;
       else if (page != notebook->cur_page)
 	gtk_notebook_draw_tab (notebook, page, area);
     }
