Store the last error code at the TEB offset used by NT instead of the
Win9x one.

diff --git a/dlls/kernel/thread.c b/dlls/kernel/thread.c
index 6d59e03..3394dc5 100644
--- a/dlls/kernel/thread.c
+++ b/dlls/kernel/thread.c
@@ -623,7 +623,7 @@
 __ASM_GLOBAL_FUNC( SetLastError,
                    "movl 4(%esp),%eax\n\t"
                    ".byte 0x64\n\t"
-                   "movl %eax,0x60\n\t"
+                   "movl %eax,0x34\n\t"
                    "ret $4" );
 
 /***********************************************************************
@@ -631,7 +631,7 @@
  *		GetLastError (KERNEL32.@)
  */
 /* DWORD WINAPI GetLastError(void); */
-__ASM_GLOBAL_FUNC( GetLastError, ".byte 0x64\n\tmovl 0x60,%eax\n\tret" );
+__ASM_GLOBAL_FUNC( GetLastError, ".byte 0x64\n\tmovl 0x34,%eax\n\tret" );
 
 /***********************************************************************
  *		GetCurrentProcessId (KERNEL.471)
@@ -657,7 +657,7 @@
  */
 void WINAPI SetLastError( DWORD error ) /* [in] Per-thread error code */
 {
-    NtCurrentTeb()->last_error = error;
+    NtCurrentTeb()->LastErrorValue = error;
 }
 
 /**********************************************************************
@@ -668,7 +668,7 @@
  */
 DWORD WINAPI GetLastError(void)
 {
-    return NtCurrentTeb()->last_error;
+    return NtCurrentTeb()->LastErrorValue;
 }
 
 /***********************************************************************
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c
index ecfe30c..c9b5980 100644
--- a/dlls/ntdll/heap.c
+++ b/dlls/ntdll/heap.c
@@ -135,7 +135,7 @@
 /* SetLastError for ntdll */
 inline static void set_status( NTSTATUS status )
 {
-    NtCurrentTeb()->last_error = RtlNtStatusToDosError( status );
+    NtCurrentTeb()->LastErrorValue = RtlNtStatusToDosError( status );
 }
 
 /* mark a block of memory as free for debugging purposes */
diff --git a/include/thread.h b/include/thread.h
index 0dc27e1..f0caf18 100644
--- a/include/thread.h
+++ b/include/thread.h
@@ -68,7 +68,7 @@
     WORD         pad1;           /* --n  2a */
     PVOID        ThreadLocalStoragePointer; /* 1--  2c Pointer to TLS array */
     PEB         *Peb;            /* 12-  30 owning process PEB */
-    DWORD	 flags;	         /* 1-n  34 */
+    DWORD        LastErrorValue; /* -2-  34 Last error code */
     DWORD        exit_code;      /* 1--  38 Termination status */
     WORD         teb_sel;        /* 1--  3c Selector to TEB */
     WORD         emu_sel;        /* 1-n  3e 80387 emulator selector */
diff --git a/include/winbase.h b/include/winbase.h
index 47315ca..25d8224 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1903,7 +1903,7 @@
 extern inline DWORD WINAPI GetLastError(void)
 {
     DWORD ret;
-    __asm__ __volatile__( ".byte 0x64\n\tmovl 0x60,%0" : "=r" (ret) );
+    __asm__ __volatile__( ".byte 0x64\n\tmovl 0x34,%0" : "=r" (ret) );
     return ret;
 }
 
@@ -1926,7 +1926,7 @@
 extern inline void WINAPI SetLastError( DWORD err );
 extern inline void WINAPI SetLastError( DWORD err )
 {
-    __asm__ __volatile__( ".byte 0x64\n\tmovl %0,0x60" : : "r" (err) : "memory" );
+    __asm__ __volatile__( ".byte 0x64\n\tmovl %0,0x34" : : "r" (err) : "memory" );
 }
 
 extern inline HANDLE WINAPI GetProcessHeap(void);