diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td
index d4a07ee..74189ca 100644
--- a/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/include/clang/Basic/DiagnosticSemaKinds.td
@@ -2751,9 +2751,9 @@
   DiagGroup<"undefined-internal">;
 def note_used_here : Note<"used here">;
 
-def warn_redefinition_of_typedef : Warning<
-  "redefinition of typedef %0 is invalid in C">,
-  InGroup<DiagGroup<"typedef-redefinition"> >, DefaultError;
+def warn_redefinition_of_typedef : ExtWarn<
+  "redefinition of typedef %0 is a C11 feature">,
+  InGroup<DiagGroup<"typedef-redefinition"> >;
 
 def err_inline_declaration_block_scope : Error<
   "inline declaration of %0 not allowed in block scope">;
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index a2bf48e..588fc14 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -1463,8 +1463,6 @@
 
   // The types match.  Link up the redeclaration chain if the old
   // declaration was a typedef.
-  // FIXME: this is a potential source of weirdness if the type
-  // spellings don't match exactly.
   if (TypedefNameDecl *Typedef = dyn_cast<TypedefNameDecl>(Old))
     New->setPreviousDeclaration(Typedef);
 
@@ -1509,8 +1507,8 @@
     return New->setInvalidDecl();
   }
 
-  // Modules always permit redefinition of typedefs.
-  if (getLangOptions().Modules)
+  // Modules always permit redefinition of typedefs, as does C11.
+  if (getLangOptions().Modules || getLangOptions().C11)
     return;
   
   // If we have a redefinition of a typedef in C, emit a warning.  This warning
diff --git a/test/Preprocessor/line-directive.c b/test/Preprocessor/line-directive.c
index 878d067..1024694 100644
--- a/test/Preprocessor/line-directive.c
+++ b/test/Preprocessor/line-directive.c
@@ -41,7 +41,7 @@
 
 # 192 "glomp.h" // not a system header.
 typedef int x;  // expected-note {{previous definition is here}}
-typedef int x;  // expected-error {{redefinition of typedef 'x' is invalid in C}}
+typedef int x;  // expected-warning {{redefinition of typedef 'x' is a C11 feature}}
 
 # 192 "glomp.h" 3 // System header.
 typedef int y;  // ok
@@ -62,7 +62,7 @@
 # 42 "blonk.h"  // DOES change system headerness.
 
 typedef int w;  // expected-note {{previous definition is here}}
-typedef int w;  // expected-error {{redefinition of typedef 'w' is invalid in C}}
+typedef int w;  // expected-warning {{redefinition of typedef 'w' is a C11 feature}}
 
 typedef int q;  // original definition in system header, should not diagnose.
 
diff --git a/test/Sema/c11-typedef-redef.c b/test/Sema/c11-typedef-redef.c
new file mode 100644
index 0000000..7e213f4
--- /dev/null
+++ b/test/Sema/c11-typedef-redef.c
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -std=c11 %s -verify
+
+typedef int type;
+typedef type type;
+typedef int type;
+
+void f(int N) {
+  typedef int type2;
+  typedef type type2;
+  typedef int type2;
+
+  typedef int vla[N]; // expected-note{{previous definition is here}}
+  typedef int vla[N]; // expected-error{{typedef redefinition with different types ('int [N]' vs 'int [N]')}}
+}
