Index: class/Managed.Windows.Forms/System.Windows.Forms/InternalWindowManager.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/InternalWindowManager.cs	(revision 104790)
+++ class/Managed.Windows.Forms/System.Windows.Forms/InternalWindowManager.cs	(working copy)
@@ -302,14 +302,16 @@
 				proposed_window_rect.right -= bw;
 			}
 
-			// This is necessary for Linux, can't handle <= 0-sized 
-			// client areas correctly.
-			if (proposed_window_rect.right <= proposed_window_rect.left) {
-				proposed_window_rect.right += proposed_window_rect.left - proposed_window_rect.right + 1;
+			if (XplatUI.RequiresPositiveClientAreaSize) {
+				// This is necessary for Linux, can't handle <= 0-sized 
+				// client areas correctly.
+				if (proposed_window_rect.right <= proposed_window_rect.left) {
+					proposed_window_rect.right += proposed_window_rect.left - proposed_window_rect.right + 1;
+				}
+				if (proposed_window_rect.top >= proposed_window_rect.bottom) {
+					proposed_window_rect.bottom += proposed_window_rect.top - proposed_window_rect.bottom + 1;
+				}
 			}
-			if (proposed_window_rect.top >= proposed_window_rect.bottom) {
-				proposed_window_rect.bottom += proposed_window_rect.top - proposed_window_rect.bottom + 1;
-			}
 
 			return proposed_window_rect;
 		}
Index: class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs	(revision 104790)
+++ class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs	(working copy)
@@ -368,6 +368,12 @@
 		}
 #endif
 
+		public static bool RequiresPositiveClientAreaSize {
+			get {
+				return driver.RequiresPositiveClientAreaSize;
+			}
+		}
+
 		public static int SizingBorderWidth {
 			get { return driver.SizingBorderWidth; }
 		}
Index: class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs	(revision 104790)
+++ class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs	(working copy)
@@ -242,6 +242,12 @@
 		internal abstract Rectangle WorkingArea { get; }
 		internal abstract bool ThemesEnabled { get; }
 
+		internal virtual bool RequiresPositiveClientAreaSize {
+			get {
+				return true;
+			}
+		}
+
 		#endregion	// XplatUI Driver Properties
 
 		internal abstract event EventHandler Idle;
Index: class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs	(revision 104790)
+++ class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs	(working copy)
@@ -1506,8 +1506,12 @@
 				return XplatUIWin32.themes_enabled;
 			}
 		}
- 
 
+		internal override bool RequiresPositiveClientAreaSize {
+			get {
+				return false;
+			}
+		}
 		#endregion	// Static Properties
 
 		#region Singleton Specific Code
