diff --git a/lib/Sema/SemaExceptionSpec.cpp b/lib/Sema/SemaExceptionSpec.cpp
index 1d21b97..490934c 100644
--- a/lib/Sema/SemaExceptionSpec.cpp
+++ b/lib/Sema/SemaExceptionSpec.cpp
@@ -396,14 +396,14 @@
         if (Name && Name->getName() == "bad_alloc") {
           // It's called bad_alloc, but is it in std?
           DeclContext* DC = ExRecord->getDeclContext();
-          while (DC && !isa<NamespaceDecl>(DC))
-            DC = DC->getParent();
-          if (DC) {
-            NamespaceDecl* NS = cast<NamespaceDecl>(DC);
+          DC = DC->getEnclosingNamespaceContext();
+          if (NamespaceDecl* NS = dyn_cast<NamespaceDecl>(DC)) {
             IdentifierInfo* NSName = NS->getIdentifier();
+            DC = DC->getParent();
             if (NSName && NSName->getName() == "std" &&
-                isa<TranslationUnitDecl>(NS->getParent()))
+                DC->getEnclosingNamespaceContext()->isTranslationUnit()) {
               return false;
+            }
           }
         }
       }
diff --git a/test/CXX/except/except.spec/p3.cpp b/test/CXX/except/except.spec/p3.cpp
index 10e027b..09b1a4e 100644
--- a/test/CXX/except/except.spec/p3.cpp
+++ b/test/CXX/except/except.spec/p3.cpp
@@ -97,9 +97,9 @@
 // As a very special workaround, we allow operator new to match no spec
 // with a throw(bad_alloc) spec, because C++0x makes an incompatible change
 // here.
-namespace std { class bad_alloc {}; }
+extern "C++" { namespace std { class bad_alloc {}; } }
 void* operator new(unsigned long) throw(std::bad_alloc);
 void* operator new(unsigned long);
-void* operator new[](unsigned long) throw(std::bad_alloc);
 void* operator new[](unsigned long);
+void* operator new[](unsigned long) throw(std::bad_alloc);
 
