Index: class/Managed.Windows.Forms/System.Windows.Forms/SystemInformation.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/SystemInformation.cs	(revision 72401)
+++ class/Managed.Windows.Forms/System.Windows.Forms/SystemInformation.cs	(working copy)
@@ -413,20 +413,28 @@
 				return XplatUI.WorkingArea;
 			}
 		}
-		#endregion	// Public Static Properties
 
-		#region Internal Static Properties
-		internal static int KeyboardSpeed {
+#if NET_2_0
+        public
+#else
+		internal 
+#endif
+        static int KeyboardSpeed {
 			get {
 				return XplatUI.KeyboardSpeed;
 			}
 		}
 	
-		internal static int KeyboardDelay {
+#if NET_2_0
+        public
+#else
+		internal 
+#endif
+		static int KeyboardDelay {
 			get {
 				return XplatUI.KeyboardDelay;
 			}
 		}
-		#endregion	// Internal Static Properties
-	}
+        #endregion	// Public Static Properties
+    }
 }
Index: class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs	(revision 72401)
+++ class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs	(working copy)
@@ -165,7 +165,7 @@
 
 		static public int KeyboardDelay {
 			get {
-				return driver.KeyboardSpeed;
+				return driver.KeyboardDelay;
 			}
 		}
 
Index: class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
===================================================================
--- class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs	(revision 72401)
+++ class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs	(working copy)
@@ -102,7 +102,9 @@
 		}
 
 		internal enum SPIAction {
-			SPI_GETWORKAREA		= 0x0030,
+            SPI_GETKEYBOARDSPEED    = 0x000A,
+            SPI_GETKEYBOARDDELAY    = 0x0016,
+            SPI_GETWORKAREA = 0x0030,
 			SPI_GETMOUSEHOVERWIDTH	= 0x0062,
 			SPI_GETMOUSEHOVERHEIGHT	= 0x0064,
 			SPI_GETMOUSEHOVERTIME	= 0x0066,
@@ -2610,24 +2612,17 @@
 
 		internal override int KeyboardSpeed {
 			get {
-				Console.WriteLine ("KeyboardSpeed: need to query Windows");
-
-				//
-				// Return values range from 0 to 31 which map to 2.5 to 30 repetitions per second.
-				//
-				return 0;
-			}
+                int result = 0;
+                Win32SystemParametersInfo(SPIAction.SPI_GETKEYBOARDSPEED, 0, ref result, 0);
+                return result;
+            }
 		}
 
 		internal override int KeyboardDelay {
 			get {
-				Console.WriteLine ("KeyboardDelay: need to query Windows");
-
-				//
-				// Return values must range from 0 to 4, 0 meaning 250ms,
-				// and 4 meaning 1000 ms.
-				//
-				return 1;
+                int result = 1;
+                Win32SystemParametersInfo(SPIAction.SPI_GETKEYBOARDDELAY, 0, ref result, 0);
+                return result;
 			}
 		}
 
