Index: modules/engines/ms-windows/xp_theme.h
===================================================================
--- modules/engines/ms-windows/xp_theme.h	(revision 17971)
+++ modules/engines/ms-windows/xp_theme.h	(working copy)
@@ -50,6 +50,7 @@
 typedef enum
 {
   XP_THEME_ELEMENT_PRESSED_CHECKBOX = 0,
+  XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX,
   XP_THEME_ELEMENT_CHECKBOX,
   XP_THEME_ELEMENT_BUTTON,
   XP_THEME_ELEMENT_LIST_HEADER,
Index: modules/engines/ms-windows/msw_style.c
===================================================================
--- modules/engines/ms-windows/msw_style.c	(revision 17971)
+++ modules/engines/ms-windows/msw_style.c	(working copy)
@@ -47,7 +47,6 @@
 static HDC get_window_dc(GtkStyle * style, GdkWindow * window, GtkStateType state_type, gint x, gint y, gint width, gint height, RECT *rect);
 static void release_window_dc(GtkStyle * style, GdkWindow * window, GtkStateType state_type);
 
-
 /* Default values, not normally used
  */
 static const GtkRequisition default_option_indicator_size = { 9, 8 };
@@ -68,6 +67,7 @@
     CHECK_LIGHT,
     CHECK_MID,
     CHECK_TEXT,
+    CHECK_INCONSISTENT,
     RADIO_BASE,
     RADIO_BLACK,
     RADIO_DARK,
@@ -79,6 +79,9 @@
 #define PART_SIZE 13
 
 static const guint8 check_aa_bits[] = {
+static const char check_inconsistent_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x03,0xf0,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -109,6 +112,7 @@
     0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0xfc, 0x0f, 0x00, 0x00
 };
 static const guint8 check_text_bits[] = {
+  { check_inconsistent_bits, NULL },
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x88, 0x03,
     0xd8, 0x01, 0xf8,
     0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -892,6 +896,11 @@
     /* enable prelight tab of GtkNotebook */
     /*
     g_snprintf (buf, sizeof (buf),
+            }
+          else if (shadow == GTK_SHADOW_ETCHED_IN)
+            {
+              draw_part (window, style->text_gc[state], area, x, y, CHECK_INCONSISTENT);
+              draw_part (window, style->text_aa_gc[state], area, x, y, CHECK_AA);                  
 		"style \"msw-notebook\" = \"msw-default\"\n"
 		"{GtkNotebook::prelight-tab=1\n"
 		"}widget_class \"*Notebook*\" style \"msw-notebook\"\n");
@@ -1118,10 +1127,23 @@
 	}
     else
 	{
-	    if (!xp_theme_draw (window, shadow == GTK_SHADOW_IN
-				? XP_THEME_ELEMENT_PRESSED_CHECKBOX
-				: XP_THEME_ELEMENT_CHECKBOX,
-				style, x, y, width, height, state, area))
+	  XpThemeElement theme_elt = XP_THEME_ELEMENT_CHECKBOX;
+	  switch (shadow)
+	    {
+	    case GTK_SHADOW_ETCHED_IN:
+	      theme_elt = XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX;
+	      break;
+
+	    case GTK_SHADOW_IN:
+	      theme_elt = XP_THEME_ELEMENT_PRESSED_CHECKBOX;
+	      break;
+
+	    default:
+	      break;
+	    }
+
+	  if (!xp_theme_draw (window, theme_elt
+			      style, x, y, width, height, state, area))
 		{
                     if( detail && !strcmp(detail, "cellcheck") )
                         state = GTK_STATE_NORMAL;
Index: modules/engines/ms-windows/xp_theme.c
===================================================================
--- modules/engines/ms-windows/xp_theme.c	(revision 17971)
+++ modules/engines/ms-windows/xp_theme.c	(working copy)
@@ -71,6 +71,7 @@
 #define TKP_THUMBVERT   6
 #define TKP_THUMBLEFT   7
 #define TKP_THUMBRIGHT  8
+  BP_CHECKBOX,
 #define TKP_TICS        9
 #define TKP_TICSVERT    10
 
@@ -254,6 +255,7 @@
 	    draw_theme_parent_background_func =
 		(DrawThemeParentBackgroundFunc) GetProcAddress (uxtheme_dll,
 								"DrawThemeParentBackground");
+    case XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX:
 	}
 
     if (is_app_themed_func && is_theme_active_func) {
@@ -327,6 +329,7 @@
 
 	case XP_THEME_ELEMENT_REBAR:
 	case XP_THEME_ELEMENT_REBAR_GRIPPER_H:
+
 	case XP_THEME_ELEMENT_REBAR_GRIPPER_V:
 	case XP_THEME_ELEMENT_REBAR_CHEVRON:
 	    klazz = XP_THEME_CLASS_REBAR;
@@ -521,6 +524,23 @@
 	case XP_THEME_ELEMENT_EDIT_TEXT:
 	    switch (state)
 		{
+      
+      case XP_THEME_ELEMENT_INCONSISTENT_CHECKBOX:
+      switch( state)
+      {
+        case GTK_STATE_SELECTED:
+         ret =  CBS_MIXEDPRESSED;
+         break;
+        case GTK_STATE_PRELIGHT:
+         ret =  CBS_MIXEDHOT;
+         break;
+        case GTK_STATE_INSENSITIVE:
+         ret =  CBS_MIXEDDISABLED;
+         break;
+        default:
+         ret =  CBS_MIXEDNORMAL;
+        }
+        break;
 		case GTK_STATE_PRELIGHT:
 		    ret = ETS_FOCUSED;
 		    break;
