Hi, This fixes strict aliasing problems in the scheduler subdir. I am not 100% sure about the pthread_once_t part, it might break on non-Linux systems. Ciao, Marcus Changelog: Fixed strict aliasing issue in __pthread_once and SetWaitableTimer. Index: scheduler/pthread.c =================================================================== RCS file: /home/wine/wine/scheduler/pthread.c,v retrieving revision 1.27 diff -u -u -r1.27 pthread.c --- scheduler/pthread.c 22 Oct 2002 00:44:24 -0000 1.27 +++ scheduler/pthread.c 17 Nov 2002 22:43:50 -0000 @@ -198,8 +198,9 @@ int __pthread_once(pthread_once_t *once_control, void (*init_routine)(void)) { static pthread_once_t the_once = PTHREAD_ONCE_INIT; - LONG once_now = *(LONG *)&the_once; + LONG once_now; + memcpy(&once_now,&the_once,sizeof(once_now)); if (InterlockedCompareExchange((LONG*)once_control, once_now+1, once_now) == once_now) (*init_routine)(); return 0; Index: scheduler/timer.c =================================================================== RCS file: /home/wine/wine/scheduler/timer.c,v retrieving revision 1.14 diff -u -u -r1.14 timer.c --- scheduler/timer.c 7 Oct 2002 21:46:03 -0000 1.14 +++ scheduler/timer.c 17 Nov 2002 22:43:50 -0000 @@ -147,7 +147,11 @@ else { DWORD remainder; - req->sec = DOSFS_FileTimeToUnixTime( (FILETIME *)&exp, &remainder ); + FILETIME ft; + + ft.dwLowDateTime = exp.s.LowPart; + ft.dwHighDateTime = exp.s.HighPart; + req->sec = DOSFS_FileTimeToUnixTime( &ft, &remainder ); req->usec = remainder / 10; /* convert from 100-ns to us units */ } req->handle = handle;