Index: class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/TabControlPainter.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/TabControlPainter.cs	(revision 103437)
+++ class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/TabControlPainter.cs	(working copy)
@@ -260,15 +260,8 @@
 
 		public virtual void Draw (Graphics dc, Rectangle area, TabControl tab)
 		{
-			Brush brush = SystemBrushes.Control;
-			dc.FillRectangle (brush, area);
-			Rectangle panel_rect = GetTabPanelRect (tab);
+			DrawBackground (dc, area, tab);
 
-			if (tab.Appearance == TabAppearance.Normal) {
-				ControlPaint.DrawBorder3D (dc, panel_rect, Border3DStyle.RaisedInner, Border3DSide.Left | Border3DSide.Top);
-				ControlPaint.DrawBorder3D (dc, panel_rect, Border3DStyle.Raised, Border3DSide.Right | Border3DSide.Bottom);
-			}
-
 			int start = 0;
 			int end = tab.TabPages.Count;
 			int delta = 1;
@@ -306,6 +299,18 @@
 			}
 		}
 
+		protected virtual void DrawBackground (Graphics dc, Rectangle area, TabControl tab)
+		{
+			Brush brush = SystemBrushes.Control;
+			dc.FillRectangle (brush, area);
+			Rectangle panel_rect = GetTabPanelRect (tab);
+
+			if (tab.Appearance == TabAppearance.Normal) {
+				ControlPaint.DrawBorder3D (dc, panel_rect, Border3DStyle.RaisedInner, Border3DSide.Left | Border3DSide.Top);
+				ControlPaint.DrawBorder3D (dc, panel_rect, Border3DStyle.Raised, Border3DSide.Right | Border3DSide.Bottom);
+			}
+		}
+
 		protected virtual int DrawTab (Graphics dc, System.Windows.Forms.TabPage page, System.Windows.Forms.TabControl tab, Rectangle bounds, bool is_selected)
 		{
 			Rectangle interior;
