Index: class/Managed.Windows.Forms/System.Windows.Forms/Form.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/Form.cs	(revision 104790)
+++ class/Managed.Windows.Forms/System.Windows.Forms/Form.cs	(working copy)
@@ -745,13 +745,13 @@
 			}
 
 			set {
-				if (icon != value) {
-					icon = value;
-
-					if (IsHandleCreated) {
-						XplatUI.SetIcon(Handle, icon == null ? default_icon : icon);
-					}
-				}
+				if (value == null)
+					value = default_icon;
+				if (icon == value)
+					return;
+				icon = value;
+				if (IsHandleCreated)
+					XplatUI.SetIcon (Handle, icon);
 			}
 		}
 
Index: class/Managed.Windows.Forms/Test/System.Windows.Forms/FormTest.cs
===================================================================
--- class/Managed.Windows.Forms/Test/System.Windows.Forms/FormTest.cs	(revision 104790)
+++ class/Managed.Windows.Forms/Test/System.Windows.Forms/FormTest.cs	(working copy)
@@ -2862,6 +2862,15 @@
 			a.Dispose ();
 #endif
 		}
+
+		[Test]
+		public void SettingIconToNull ()
+		{
+			Form form = new Form ();
+			Assert.IsNotNull (form.Icon, "1");
+			form.Icon = null;
+			Assert.IsNotNull (form.Icon, "2");
+		}
 	}
 
 	public class TimeBombedForm : Form
