diff --git a/include/clang/Basic/TokenKinds.def b/include/clang/Basic/TokenKinds.def
index 9fd3c753fb12419925ef90feeb4930438c253c7b..8e0653464167747ee3a9edd91d6f5f3a7ee77a55 100644
--- a/include/clang/Basic/TokenKinds.def
+++ b/include/clang/Basic/TokenKinds.def
@@ -381,6 +381,11 @@ ALIAS("_uuidof"      , __uuidof   , KEYMS | KEYBORLAND)
 // Borland Extensions which should be disabled in strict conformance mode.
 ALIAS("_pascal"      , __pascal   , KEYBORLAND)
 
+// Clang Extensions.
+ALIAS("__char16_t"   , char16_t   , KEYCXX)
+ALIAS("__char32_t"   , char32_t   , KEYCXX)
+
+
 //===----------------------------------------------------------------------===//
 // Objective-C @-preceeded keywords.
 //===----------------------------------------------------------------------===//
diff --git a/test/Lexer/clang-keywords.cpp b/test/Lexer/clang-keywords.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a349b44ade20944db5c8fe5415691333e6fde9ae
--- /dev/null
+++ b/test/Lexer/clang-keywords.cpp
@@ -0,0 +1,3 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+__char16_t c16;
+void f(__char32_t) { }
diff --git a/test/Lexer/cxx0x_keyword_as_cxx98.cpp b/test/Lexer/cxx0x_keyword_as_cxx98.cpp
index 2bfb8b0b931befd713214c1b42a985dba9cb3ded..0223b039be9295d0b96424a0e6f186284853f8bf 100644
--- a/test/Lexer/cxx0x_keyword_as_cxx98.cpp
+++ b/test/Lexer/cxx0x_keyword_as_cxx98.cpp
@@ -1,2 +1,3 @@
-// RUN: %clang_cc1 %s -fsyntax-only
+// RUN: %clang_cc1 %s -verify -fsyntax-only
 int static_assert;
+int char16_t;