Index: /trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Runtime/Makefile.kmk	(revision 19919)
+++ /trunk/src/VBox/Runtime/Makefile.kmk	(revision 19920)
@@ -1240,8 +1240,4 @@
 	r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
 	r0drv/generic/RTMpOn-r0drv-generic.cpp \
-	r0drv/generic/RTThreadPreemptIsEnabled-r0drv-generic.cpp \
-	r0drv/generic/RTThreadPreemptIsPending-r0drv-generic.cpp \
-	r0drv/generic/RTThreadPreemptDisable-r0drv-generic.cpp \
-	r0drv/generic/RTThreadPreemptRestore-r0drv-generic.cpp \
 	r0drv/generic/mpnotification-r0drv-generic.cpp \
 	r0drv/memobj-r0drv.cpp \
Index: /trunk/src/VBox/Runtime/r0drv/os2/thread-r0drv-os2.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/os2/thread-r0drv-os2.cpp	(revision 19919)
+++ /trunk/src/VBox/Runtime/r0drv/os2/thread-r0drv-os2.cpp	(revision 19920)
@@ -74,2 +74,49 @@
 }
 
+
+RTDECL(bool) RTThreadPreemptIsEnabled(RTTHREAD hThread)
+{
+    Assert(hThread == NIL_RTTHREAD);
+    return false;
+}
+
+
+RTDECL(bool) RTThreadPreemptIsPending(RTTHREAD hThread)
+{
+    Assert(hThread == NIL_RTTHREAD);
+
+    union
+    {
+        RTFAR16 fp;
+        uint8_t fResched;
+    } u;
+    int rc = RTR0Os2DHQueryDOSVar(DHGETDOSV_YIELDFLAG, 0, &u.fp);
+    AssertReturn(rc == 0, false);
+    if (u.fResched)
+        return true;
+
+    /** @todo Check if DHGETDOSV_YIELDFLAG includes TCYIELDFLAG. */
+    rc = RTR0Os2DHQueryDOSVar(DHGETDOSV_TCYIELDFLAG, 0, &u.fp);
+    AssertReturn(rc == 0, false);
+    if (u.fResched)
+        return true;
+    return false;
+}
+
+
+RTDECL(void) RTThreadPreemptDisable(PRTTHREADPREEMPTSTATE pState)
+{
+    AssertPtr(pState);
+    Assert(pState->uchDummy != 42);
+    pState->uchDummy = 42;
+    /* Nothing to do here as OS/2 doesn't preempt kernel threads. */
+}
+
+
+RTDECL(void) RTThreadPreemptRestore(PRTTHREADPREEMPTSTATE pState)
+{
+    AssertPtr(pState);
+    Assert(pState->uchDummy == 42);
+    pState->uchDummy = 0;
+}
+
