diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index 6d61c52..5e60bd8 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -111,9 +111,6 @@
       return llvm::DIDescriptor(Ty);
     }
   }
-
-  if (!LexicalBlockStack.empty())
-    return llvm::DIDescriptor(LexicalBlockStack.back());
   return TheCU;
 }
 
@@ -2825,12 +2822,6 @@
                                 getStaticDataMemberDeclaration(VD));
 }
 
-void CGDebugInfo::EmitUsingDirectiveDecl(const UsingDirectiveDecl &UD) {
-  SourceLocation Loc = UD.getNamespaceKeyLocation();
-  llvm::DIFile Unit = getOrCreateFile(Loc);
-  DBuilder.createUsingDirective(getContextDescriptor(&UD), Unit, getLineNumber(Loc), getOrCreateNameSpace(UD.getNominatedNamespace()));
-}
-
 /// getOrCreateNamesSpace - Return namespace descriptor for the given
 /// namespace decl.
 llvm::DINameSpace 
diff --git a/lib/CodeGen/CGDebugInfo.h b/lib/CodeGen/CGDebugInfo.h
index bcda906..fbbee0b 100644
--- a/lib/CodeGen/CGDebugInfo.h
+++ b/lib/CodeGen/CGDebugInfo.h
@@ -34,7 +34,6 @@
   class ObjCInterfaceDecl;
   class ClassTemplateSpecializationDecl;
   class GlobalDecl;
-  class UsingDirectiveDecl;
 
 namespace CodeGen {
   class CodeGenModule;
@@ -248,9 +247,6 @@
   /// EmitGlobalVariable - Emit global variable's debug info.
   void EmitGlobalVariable(const ValueDecl *VD, llvm::Constant *Init);
 
-  /// \brief Emit a C++ using directive.
-  void EmitUsingDirectiveDecl(const UsingDirectiveDecl &UD);
-
   /// getOrCreateRecordType - Emit record type's standalone debug info. 
   llvm::DIType getOrCreateRecordType(QualType Ty, SourceLocation L);
 
diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp
index 75b45cc..a43a383 100644
--- a/lib/CodeGen/CGDecl.cpp
+++ b/lib/CodeGen/CGDecl.cpp
@@ -78,18 +78,14 @@
   case Decl::CXXRecord: // struct/union/class X; [C++]
   case Decl::Using:          // using X; [C++]
   case Decl::UsingShadow:
+  case Decl::UsingDirective: // using namespace X; [C++]
   case Decl::NamespaceAlias:
   case Decl::StaticAssert: // static_assert(X, ""); [C++0x]
   case Decl::Label:        // __label__ x;
   case Decl::Import:
     // None of these decls require codegen support.
     return;
-  case Decl::UsingDirective: { // using namespace X; [C++]
-    if (CGDebugInfo *DI = getDebugInfo()) {
-      DI->EmitUsingDirectiveDecl(cast<UsingDirectiveDecl>(D));
-    }
-    return;
-  }
+
   case Decl::Var: {
     const VarDecl &VD = cast<VarDecl>(D);
     assert(VD.isLocalVarDecl() &&
diff --git a/lib/CodeGen/CodeGenFunction.cpp b/lib/CodeGen/CodeGenFunction.cpp
index 50e52c6..ec139df 100644
--- a/lib/CodeGen/CodeGenFunction.cpp
+++ b/lib/CodeGen/CodeGenFunction.cpp
@@ -191,7 +191,6 @@
   // Emit debug descriptor for function end.
   if (CGDebugInfo *DI = getDebugInfo()) {
     DI->EmitFunctionEnd(Builder);
-    DI->setLocation(EndLoc);
   }
 
   EmitFunctionEpilog(*CurFnInfo);
