Index: class/Managed.Windows.Forms/System.Windows.Forms/InternalWindowManager.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/InternalWindowManager.cs	(revision 107701)
+++ class/Managed.Windows.Forms/System.Windows.Forms/InternalWindowManager.cs	(working copy)
@@ -642,9 +642,17 @@
 		private void HandleSizing (Message m)
 		{
 			Rectangle pos = virtual_position;
-			Size minimum_size = SystemInformation.MinWindowTrackSize;
-			int mw = minimum_size.Width;
-			int mh = minimum_size.Height;
+			int mw;
+			int mh;
+			if (IsToolWindow) {
+				int border_width = BorderWidth;
+				mw = 2 * (border_width + Theme.ManagedWindowSpacingAfterLastTitleButton) + ThemeEngine.Current.ManagedWindowButtonSize (this).Width;
+				mh = 2 * border_width + TitleBarHeight;
+			} else {
+				Size minimum_size = SystemInformation.MinWindowTrackSize;
+				mw = minimum_size.Width;
+				mh = minimum_size.Height;
+			}
 			int x = Cursor.Position.X;
 			int y = Cursor.Position.Y;
 
Index: class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs	(revision 107701)
+++ class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs	(working copy)
@@ -1028,6 +1028,7 @@
 		public abstract bool ManagedWindowTitleButtonHasHotElementStyle (TitleButton button, Form form);
 		public abstract void ManagedWindowDrawMenuButton (Graphics dc, TitleButton button, Rectangle clip, InternalWindowManager wm);
 		public abstract void ManagedWindowOnSizeInitializedOrChanged (Form form);
+		public const int ManagedWindowSpacingAfterLastTitleButton = 2;
 		#endregion
 
 		#region	ControlPaint Methods
Index: class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs	(revision 107701)
+++ class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs	(working copy)
@@ -6146,7 +6146,7 @@
 			int btw = btsize.Width;
 			int bth = btsize.Height;
 			int top = bw + 2;
-			int left = form.Width - bw - btw - 2;
+			int left = form.Width - bw - btw - ManagedWindowSpacingAfterLastTitleButton;
 			
 			if ((!wm.IsToolWindow || wm.IsMinimized) && wm.HasBorders) {
 				buttons.CloseButton.Rectangle = new Rectangle (left, top, btw, bth);
