diff --git a/Misc/NEWS b/Misc/NEWS
index b4055ec..517984e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
 Core and Builtins
 -----------------
 
+- Issue #4893: Use NT threading on CE.
+
 - Issue #4915: Port sysmodule to Windows CE.
 
 - Issue #4074: Change the criteria for doing a full garbage collection (i.e.
diff --git a/Python/thread.c b/Python/thread.c
index 03580f3..ff571d8 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -137,10 +137,6 @@
 #include "thread_beos.h"
 #endif
 
-#ifdef WINCE_THREADS
-#include "thread_wince.h"
-#endif
-
 #ifdef PLAN9_THREADS
 #include "thread_plan9.h"
 #endif
diff --git a/Python/thread_nt.h b/Python/thread_nt.h
index e0457a2..633fe40 100644
--- a/Python/thread_nt.h
+++ b/Python/thread_nt.h
@@ -106,8 +106,13 @@
 	void *arg;
 } callobj;
 
-/* thunker to call a __cdecl function instead of a __stdcall */
+/* thunker to call adapt between the function type used by the system's
+thread start function and the internally used one. */
+#if defined(MS_WINCE)
+static DWORD WINAPI
+#else
 static unsigned __stdcall
+#endif
 bootstrap(void *call)
 {
 	callobj *obj = (callobj*)call;
@@ -135,24 +140,38 @@
 		return -1;
 	obj->func = func;
 	obj->arg = arg;
+#if defined(MS_WINCE)
+	hThread = CreateThread(NULL,
+	                       Py_SAFE_DOWNCAST(_pythread_stacksize, Py_ssize_t, SIZE_T),
+	                       bootstrap, obj, 0, &threadID);
+#else
 	hThread = (HANDLE)_beginthreadex(0,
 			  Py_SAFE_DOWNCAST(_pythread_stacksize,
 					   Py_ssize_t, unsigned int),
 			  bootstrap, obj,
 			  0, &threadID);
+#endif
 	if (hThread == 0) {
+#if defined(MS_WINCE)
+		/* Save error in variable, to prevent PyThread_get_thread_ident
+		   from clobbering it. */
+		unsigned e = GetLastError();
+		dprintf(("%ld: PyThread_start_new_thread failed, win32 error code %u\n",
+		         PyThread_get_thread_ident(), e));
+#else
 		/* I've seen errno == EAGAIN here, which means "there are
 		 * too many threads".
 		 */
+		int e = errno;
 		dprintf(("%ld: PyThread_start_new_thread failed, errno %d\n",
-		         PyThread_get_thread_ident(), errno));
+		         PyThread_get_thread_ident(), e));
+#endif
 		threadID = (unsigned)-1;
 		HeapFree(GetProcessHeap(), 0, obj);
 	}
 	else {
 		dprintf(("%ld: PyThread_start_new_thread succeeded: %p\n",
 		         PyThread_get_thread_ident(), (void*)hThread));
-		/* wait for thread to initialize, so we can get its id */
 		CloseHandle(hThread);
 	}
 	return (long) threadID;
@@ -177,7 +196,11 @@
 	dprintf(("%ld: PyThread_exit_thread called\n", PyThread_get_thread_ident()));
 	if (!initialized)
 		exit(0);
+#if defined(MS_WINCE)
+	ExitThread(0);
+#else
 	_endthreadex(0);
+#endif
 }
 
 #ifndef NO_EXIT_PROG
