diff --git a/Source/OpenTK/Platform/MacOS/HIDInput.cs b/Source/OpenTK/Platform/MacOS/HIDInput.cs
index 85cab913..7ff0e498 100755
--- a/Source/OpenTK/Platform/MacOS/HIDInput.cs
+++ b/Source/OpenTK/Platform/MacOS/HIDInput.cs
@@ -818,6 +818,12 @@ namespace OpenTK.Platform.MacOS
                 CFRunLoop inCFRunLoop,
                 CFString inCFRunLoopMode);
 
+            [DllImport(hid)]
+            public static void IOHIDManagerUnscheduleFromRunLoop(
+                IOHIDManagerRef inIOHIDManagerRef,
+                CFRunLoop inCFRunLoop,
+                CFString inCFRunLoopMode);
+
             [DllImport(hid)]
             public static extern void IOHIDManagerSetDeviceMatching(
                 IOHIDManagerRef manager,
@@ -1468,8 +1474,8 @@ namespace OpenTK.Platform.MacOS
                         hidmanager, IntPtr.Zero, IntPtr.Zero);
                     NativeMethods.IOHIDManagerRegisterDeviceRemovalCallback(
                         hidmanager, IntPtr.Zero, IntPtr.Zero);
-                    NativeMethods.IOHIDManagerScheduleWithRunLoop(
-                        hidmanager, IntPtr.Zero, IntPtr.Zero);
+                    NativeMethods.IOHIDManagerUnscheduleFromRunLoop(
+                        hidmanager, RunLoop, InputLoopMode);
 
                     foreach (var device in MouseDevices.Keys)
                     {