--- rtmpdump/thread.c.orig	2014-03-02 18:20:23.000000000 +0000
+++ rtmpdump/thread.c	2014-03-12 09:20:02.337444200 +0000
@@ -30,10 +30,14 @@
 ThreadCreate(thrfunc *routine, void *args)
 {
   HANDLE thd;
+  uintptr_t success;
 
-  thd = (HANDLE) _beginthread(routine, 0, args);
-  if (thd == -1L)
+  success = _beginthreadex(NULL, 0, routine, args, 0, (unsigned *)&thd);
+  if (!success)
+  {
     RTMP_LogPrintf("%s, _beginthread failed with %d\n", __FUNCTION__, errno);
+    return INVALID_HANDLE_VALUE;
+  }
 
   return thd;
 }
--- rtmpdump/thread.h.orig	2014-03-02 18:20:23.000000000 +0000
+++ rtmpdump/thread.h	2014-03-12 09:22:17.183567500 +0000
@@ -25,8 +25,8 @@
 #ifdef WIN32
 #include <windows.h>
 #include <process.h>
-#define TFTYPE	void
-#define TFRET()
+#define TFTYPE	unsigned int __stdcall
+#define TFRET() return 0
 #define THANDLE	HANDLE
 #else
 #include <pthread.h>
