diff --git a/scheduler/pthread.c b/scheduler/pthread.c
index 134fe55..1191b35 100644
--- a/scheduler/pthread.c
+++ b/scheduler/pthread.c
@@ -157,12 +157,6 @@
 {
     memcpy( &funcs, functions, sizeof(funcs) );
     funcs.ptr_set_thread_data( &initial_descr );
-    initial_descr.cancel_state = PTHREAD_CANCEL_ENABLE;
-    initial_descr.cancel_type  = PTHREAD_CANCEL_ASYNCHRONOUS;
-    writejump( "__errno_location", __errno_location );
-    writejump( "__h_errno_location", __h_errno_location );
-    writejump( "__res_state", __res_state );
-    if (libc_uselocale) libc_uselocale( -1 /*LC_GLOBAL_LOCALE*/ );
 }
 
 
@@ -173,17 +167,24 @@
  */
 void wine_pthread_init_thread(void)
 {
+    struct pthread_descr_struct *descr;
+
     if (funcs.ptr_set_thread_data)
     {
-        struct pthread_descr_struct *descr = calloc( 1, sizeof(*descr) );
-
+        descr = calloc( 1, sizeof(*descr) );
         funcs.ptr_set_thread_data( descr );
-        descr->cancel_state = PTHREAD_CANCEL_ENABLE;
-        descr->cancel_type  = PTHREAD_CANCEL_ASYNCHRONOUS;
         if (libc_multiple_threads) *libc_multiple_threads = 1;
-        if (libc_uselocale) libc_uselocale( -1 /*LC_GLOBAL_LOCALE*/ );
     }
-    /* else it's the first thread, init will be done in wine_pthread_init_process */
+    else  /* first thread */
+    {
+        descr = &initial_descr;
+        writejump( "__errno_location", __errno_location );
+        writejump( "__h_errno_location", __h_errno_location );
+        writejump( "__res_state", __res_state );
+    }
+    descr->cancel_state = PTHREAD_CANCEL_ENABLE;
+    descr->cancel_type  = PTHREAD_CANCEL_ASYNCHRONOUS;
+    if (libc_uselocale) libc_uselocale( -1 /*LC_GLOBAL_LOCALE*/ );
 }
 
 
