diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h
index 0129711..4e7ea13 100644
--- a/include/llvm/CodeGen/AsmPrinter.h
+++ b/include/llvm/CodeGen/AsmPrinter.h
@@ -242,7 +242,7 @@
     /// special global used by LLVM.  If so, emit it and return true, otherwise
     /// do nothing and return false.
     bool EmitSpecialLLVMGlobal(const GlobalVariable *GV);
-    
+
   public:
     //===------------------------------------------------------------------===//
     /// LEB 128 number encoding.
@@ -333,6 +333,10 @@
     /// debug tables.
     void printDeclare(const MachineInstr *MI) const;
 
+    /// getMangler - Return Mangler used by the AsmPrinter. This is used by
+    /// DWARF debug info generator.
+    Mangler *getMangler() { return Mang; }
+
     /// postInstructionAction - Handling printing of items after the
     /// instruction iteself has been printed (e.g. comments)
     void postInstructionAction(const MachineInstr &MI) const {
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 32f5673..9b7d2d0 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -15,6 +15,7 @@
 #include "llvm/Module.h"
 #include "llvm/CodeGen/MachineModuleInfo.h"
 #include "llvm/Support/Timer.h"
+#include "llvm/Support/Mangler.h"
 #include "llvm/System/Path.h"
 #include "llvm/Target/TargetAsmInfo.h"
 #include "llvm/Target/TargetRegisterInfo.h"
@@ -785,9 +786,11 @@
   AddString(GVDie, dwarf::DW_AT_name, dwarf::DW_FORM_string, Name);
   std::string LinkageName;
   GV.getLinkageName(LinkageName);
-  if (!LinkageName.empty())
+  if (!LinkageName.empty()) {
+    Mangler *Mg = Asm->getMangler();
     AddString(GVDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
-              LinkageName);
+              Mg ? Mg->makeNameProper(LinkageName) : LinkageName);
+  }
   AddType(DW_Unit, GVDie, GV.getType());
   if (!GV.isLocalToUnit())
     AddUInt(GVDie, dwarf::DW_AT_external, dwarf::DW_FORM_flag, 1);
@@ -856,9 +859,11 @@
   std::string LinkageName;
   SP.getLinkageName(LinkageName);
 
-  if (!LinkageName.empty())
+  if (!LinkageName.empty()) {
+    Mangler *Mg = Asm->getMangler();
     AddString(SPDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
-              LinkageName);
+              Mg ? Mg->makeNameProper(LinkageName) : LinkageName);
+  }
 
   AddSourceLine(SPDie, &SP);
 
