Problems with SDL-1.1.3 on Win32

I have some problems with SDL on Win32 using VC++ 6.0.

If try to compile SDL using the file SDL.dsw, then in file
SDL_thread_c.h the header SDL_systhread_c.h is included instead of

I compiled gtv from smpeg. If I use the “pause” button, the
program hangs. I think, this is caused by the function:
void SDL_SYS_WaitThread(SDL_Thread *thread)
In this function the call
WaitForSingleObject(thread->handle, INFINITE);
never returns. If you change (as a quick hack)
INFINITE to i.e. 100 it seems to work properly.

gtv and my own written program crashes when exiting the program.
It crashes when it runs into the function:
static void Audio_DeleteDevice(SDL_AudioDevice device) from file
Win32/SDL_dx5audio.c when calling
free(device); .
If I change this line to
there no crash at exiting the program.
Of course, this is just a side effect or compiler bug
(by what I know about C programming, the cast is superfluous).

I am working with:
Win 98
VC++ 6.0 (without service pack)
NVidia TNT graphic card
SoundBlaster PCI 64

smpeg (latest snapshot)