--- 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 #include -#define TFTYPE void -#define TFRET() +#define TFTYPE unsigned int __stdcall +#define TFRET() return 0 #define THANDLE HANDLE #else #include