diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 32f5673..dab9957 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -225,7 +225,7 @@
     AbbreviationsSet(InitAbbreviationsSetSize), Abbreviations(),
     ValuesSet(InitValuesSetSize), Values(), StringPool(), SectionMap(),
     SectionSourceLines(), didInitial(false), shouldEmit(false),
-    FunctionDbgScope(0), DebugTimer(0) {
+    FunctionDbgScope(0), DebugTimer(0), LLVMMangler(0) {
   if (TimePassesIsEnabled)
     DebugTimer = new Timer("Dwarf Debug Writer",
                            getDwarfTimerGroup());
@@ -787,7 +787,7 @@
   GV.getLinkageName(LinkageName);
   if (!LinkageName.empty())
     AddString(GVDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
-              LinkageName);
+              LLVMMangler->makeNameProper(LinkageName));
   AddType(DW_Unit, GVDie, GV.getType());
   if (!GV.isLocalToUnit())
     AddUInt(GVDie, dwarf::DW_AT_external, dwarf::DW_FORM_flag, 1);
@@ -858,7 +858,7 @@
 
   if (!LinkageName.empty())
     AddString(SPDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
-              LinkageName);
+              LLVMMangler->makeNameProper(LinkageName));
 
   AddSourceLine(SPDie, &SP);
 
@@ -1278,6 +1278,16 @@
   SmallVector<GlobalVariable *, 4> SPs;
   CollectDebugInfoAnchors(*M, CUs, GVs, SPs);
 
+  LLVMMangler = new Mangler(*M, TAI->getGlobalPrefix());
+  // add chars used in ObjC method names so method names aren't mangled
+  LLVMMangler->markCharAcceptable('[');
+  LLVMMangler->markCharAcceptable(']');
+  LLVMMangler->markCharAcceptable('(');
+  LLVMMangler->markCharAcceptable(')');
+  LLVMMangler->markCharAcceptable('-');
+  LLVMMangler->markCharAcceptable('+');
+  LLVMMangler->markCharAcceptable(' ');
+
   // Create all the compile unit DIEs.
   for (SmallVector<GlobalVariable *, 2>::iterator I = CUs.begin(),
          E = CUs.end(); I != E; ++I) 
@@ -1408,6 +1418,8 @@
 
   if (TimePassesIsEnabled)
     DebugTimer->stopTimer();
+
+  delete LLVMMangler;
 }
 
 /// BeginFunction - Gather pre-function debug information.  Assumes being
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h
index a4072f5..78260e5 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -20,6 +20,7 @@
 #include "llvm/CodeGen/MachineLocation.h"
 #include "llvm/Analysis/DebugInfo.h"
 #include "llvm/Support/raw_ostream.h"
+#include "llvm/Support/Mangler.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/FoldingSet.h"
 #include "llvm/ADT/SmallSet.h"
@@ -179,7 +180,9 @@
 
   /// DebugTimer - Timer for the Dwarf debug writer.
   Timer *DebugTimer;
-  
+ 
+  Mangler *LLVMMangler;
+
   struct FunctionDebugFrameInfo {
     unsigned Number;
     std::vector<MachineMove> Moves;
