Start using the exported TEB structure from winternl.h where
possible.

diff --git a/include/winternl.h b/include/winternl.h
index 88b9186..94c64fe 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -30,35 +30,6 @@
 #endif /* defined(__cplusplus) */
 
 
-/***********************************************************************
- * TEB data structure
- */
-#if 0
-typedef struct _TEB
-{
-    NT_TIB          Tib;                        /* 000 */
-    PVOID           EnvironmentPointer;         /* 01c */
-    CLIENT_ID       ClientId;                   /* 020 */
-    PVOID           ActiveRpcHandle;            /* 028 */
-    PVOID           ThreadLocalStoragePointer;  /* 02c */
-    PPEB            Peb;                        /* 030 */
-    ULONG           LastErrorValue;             /* 034 */
-    BYTE            __pad038[140];              /* 038 */
-    ULONG           CurrentLocale;              /* 0c4 */
-    BYTE            __pad0c8[1752];             /* 0c8 */
-    PVOID           Reserved2[278];             /* 7a0 */
-    UNICODE_STRING  StaticUnicodeString;        /* bf8 used by advapi32 */
-    WCHAR           StaticUnicodeBuffer[261];   /* c00 used by advapi32 */
-    PVOID           DeallocationStack;          /* e0c */
-    PVOID           TlsSlots[64];               /* e10 */
-    BYTE            Reserved3[8];               /* f10 */
-    PVOID           Reserved4[26];              /* f18 */
-    PVOID           ReservedForOle;             /* f80 Windows 2000 only */
-    PVOID           Reserved5[4];               /* f84 */
-    PVOID           TlsExpansionSlots;          /* f94 */
-} TEB, *PTEB;
-#endif
-
 /**********************************************************************
  * Fundamental types and data structures
  */
@@ -176,6 +147,42 @@
 
 
 /***********************************************************************
+ * TEB data structure
+ */
+#if defined(_NTSYSTEM_) || defined(_KERNEL32_)  /* hack, should go away */
+# define WINE_NO_TEB
+#endif
+
+#ifndef WINE_NO_TEB  /* don't define TEB if included from thread.h */
+# ifndef WINE_TEB_DEFINED
+# define WINE_TEB_DEFINED
+typedef struct _TEB
+{
+    NT_TIB          Tib;                        /* 000 */
+    PVOID           EnvironmentPointer;         /* 01c */
+    CLIENT_ID       ClientId;                   /* 020 */
+    PVOID           ActiveRpcHandle;            /* 028 */
+    PVOID           ThreadLocalStoragePointer;  /* 02c */
+    PPEB            Peb;                        /* 030 */
+    ULONG           LastErrorValue;             /* 034 */
+    BYTE            __pad038[140];              /* 038 */
+    ULONG           CurrentLocale;              /* 0c4 */
+    BYTE            __pad0c8[1752];             /* 0c8 */
+    PVOID           Reserved2[278];             /* 7a0 */
+    UNICODE_STRING  StaticUnicodeString;        /* bf8 used by advapi32 */
+    WCHAR           StaticUnicodeBuffer[261];   /* c00 used by advapi32 */
+    PVOID           DeallocationStack;          /* e0c */
+    PVOID           TlsSlots[64];               /* e10 */
+    BYTE            Reserved3[8];               /* f10 */
+    PVOID           Reserved4[26];              /* f18 */
+    PVOID           ReservedForOle;             /* f80 Windows 2000 only */
+    PVOID           Reserved5[4];               /* f84 */
+    PVOID           TlsExpansionSlots;          /* f94 */
+} TEB, *PTEB;
+# endif /* WINE_TEB_DEFINED */
+#endif  /* WINE_NO_TEB */
+
+/***********************************************************************
  * Enums
  */