Index: /trunk/eraser6/Eraser.Util/UxThemeApi.cs
===================================================================
--- /trunk/eraser6/Eraser.Util/UxThemeApi.cs	(revision 1098)
+++ /trunk/eraser6/Eraser.Util/UxThemeApi.cs	(revision 1099)
@@ -160,8 +160,7 @@
 			IntPtr hDC = e.Graphics.GetHdc();
 			Rectangle rect = e.AffectedBounds;
-			rect.Width = GutterWidth;
 			rect.Inflate(-2, -2);
 			rect.Offset(1, 1);
-			rect.Size = new Size(rect.Width, rect.Height + 1);
+			rect.Size = new Size(GutterWidth, rect.Height + 1);
 
 			NativeMethods.DrawThemeBackground(hTheme, hDC,
@@ -175,5 +174,5 @@
 			Rectangle rect = Rectangle.Truncate(e.Graphics.VisibleClipBounds);
 			rect.Inflate(-1, 0);
-			rect.Offset(1, 0);
+			rect.Offset(2, 0);
 			IntPtr hDC = e.Graphics.GetHdc();
 
@@ -209,8 +208,11 @@
 			}
 
-			Rectangle imgRect = e.ImageRectangle;
-			imgRect.Inflate(4, 3);
-			imgRect.Offset(1, 0);
-			Rectangle bgRect = imgRect;
+			//Create the rectangle for the checkmark:
+			// 1. Offset by 2px
+			// 2. Inflate by (4, 3)
+			// 3. Increase width by 1px to fall on even x-coordinate (correction for odd pixel offset)
+			Rectangle imgRect = new Rectangle(e.ImageRectangle.Left + 2 - 4,
+				e.ImageRectangle.Top - 3,
+				e.ImageRectangle.Width + 4 * 2 + 1, e.ImageRectangle.Height + 3 * 2);
 
 			IntPtr hDC = e.Graphics.GetHdc();
@@ -221,5 +223,5 @@
 			NativeMethods.DrawThemeBackground(hTheme, hDC,
 				(int)NativeMethods.MENUPARTS.MENU_POPUPCHECKBACKGROUND, bgState,
-				ref bgRect, ref bgRect);
+				ref imgRect, ref imgRect);
 
 			int checkState = (int)(item.Checked ?
@@ -242,5 +244,5 @@
 
 			Rectangle newRect = e.TextRectangle;
-			newRect.Offset(1, 0);
+			newRect.Offset(2, 0);
 			e.TextRectangle = newRect;
 			Rectangle rect = new Rectangle(e.TextRectangle.Left, 0,
@@ -297,5 +299,5 @@
 					(int)NativeMethods.MENUPARTS.MENU_POPUPCHECK, 0,
 					IntPtr.Zero, NativeMethods.THEMESIZE.TS_TRUE, ref checkSize);
-				return 2 * checkSize.Width;
+				return 2 * checkSize.Width + margins.Left + margins.Width - 1;
 			}
 		}
