Index: include/clang/Basic/DiagnosticLexKinds.td
===================================================================
--- include/clang/Basic/DiagnosticLexKinds.td	(revision 152508)
+++ include/clang/Basic/DiagnosticLexKinds.td	(working copy)
@@ -226,6 +226,11 @@
 def warn_pp_convert_rhs_to_positive : Warning<
   "right side of operator converted from negative value to unsigned: %0">;
 
+def warn_pp_import_directive_ms : Warning<
+  "#import is a language extension that includes the contents of a header "
+  "file. It does not convert a type library to C++ classes in Microsoft Mode">,
+  InGroup<Microsoft>;
+
 def ext_pp_import_directive : Extension<"#import is a language extension">;
 def ext_pp_ident_directive : Extension<"#ident is a language extension">;
 def ext_pp_include_next_directive : Extension<
Index: lib/Lex/PPDirectives.cpp
===================================================================
--- lib/Lex/PPDirectives.cpp	(revision 152508)
+++ lib/Lex/PPDirectives.cpp	(working copy)
@@ -1488,7 +1488,12 @@
 ///
 void Preprocessor::HandleImportDirective(SourceLocation HashLoc,
                                          Token &ImportTok) {
-  if (!Features.ObjC1)  // #import is standard for ObjC.
+  // Microsoft mode has their own #import directive for bringing in type 
+  // libraries.  So the user likely expects this to behave differently than it
+  // really is.
+  if (Features.MicrosoftMode)
+    Diag(ImportTok, diag::warn_pp_import_directive_ms );
+  else if (!Features.ObjC1)  // #import is standard for ObjC.
     Diag(ImportTok, diag::ext_pp_import_directive);
 
   return HandleIncludeDirective(HashLoc, ImportTok, 0, true);
Index: test/Preprocessor/microsoft-import.c
===================================================================
--- test/Preprocessor/microsoft-import.c	(revision 0)
+++ test/Preprocessor/microsoft-import.c	(working copy)
@@ -0,0 +1,3 @@
+// RUN: %clang_cc1 -fsyntax-only -verify -fms-compatibility %s
+
+#import "pp-record.h" // expected-warning {{#import is a language extension that includes the contents of a header file. It does not convert a type library to C++ classes in Microsoft Mode}}
