diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp
index 2fcee3e..a1fa20e 100644
--- a/lib/CodeGen/AsmPrinter/DwarfException.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp
@@ -459,9 +459,8 @@
           FirstActions[P.PadIndex]
         };
 
-        // Try to merge with the previous call-site. SJLJ doesn't do this
-        if (PreviousIsInvoke &&
-          MAI->getExceptionHandlingType() == ExceptionHandling::Dwarf) {
+        // Try to merge with the previous call-site.
+        if (PreviousIsInvoke) {
           CallSiteEntry &Prev = CallSites.back();
           if (Site.PadLabel == Prev.PadLabel && Site.Action == Prev.Action) {
             // Extend the range of the previous entry.
@@ -606,7 +605,7 @@
     std::string LSDAName =
       Asm->Mang->makeNameProper(std::string("LSDA_") + out.str(),
                                 Mangler::Private);
-    EmitLabel(LSDAName.c_str(), 0, false);
+    O << LSDAName << ":\n";
   }
 
   // Emit the header.
diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp
index 60ff2c5..20b959b 100644
--- a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp
@@ -43,27 +43,21 @@
 
 /// PrintLabelName - Print label name in form used by Dwarf writer.
 ///
-void Dwarf::PrintLabelName(const char *Tag, unsigned Number,
-                           bool ForcePrivate) const {
-  if (ForcePrivate)
-    O << MAI->getPrivateGlobalPrefix();
-  O << Tag;
+void Dwarf::PrintLabelName(const char *Tag, unsigned Number) const {
+  O << MAI->getPrivateGlobalPrefix() << Tag;
   if (Number) O << Number;
 }
 void Dwarf::PrintLabelName(const char *Tag, unsigned Number,
-                           const char *Suffix, bool ForcePrivate) const {
-  if (ForcePrivate)
-    O << MAI->getPrivateGlobalPrefix();
-  O << Tag;
+                           const char *Suffix) const {
+  O << MAI->getPrivateGlobalPrefix() << Tag;
   if (Number) O << Number;
   O << Suffix;
 }
 
 /// EmitLabel - Emit location label for internal use by Dwarf.
 ///
-void Dwarf::EmitLabel(const char *Tag, unsigned Number,
-                      bool ForcePrivate) const {
-  PrintLabelName(Tag, Number, ForcePrivate);
+void Dwarf::EmitLabel(const char *Tag, unsigned Number) const {
+  PrintLabelName(Tag, Number);
   O << ":\n";
 }
 
diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.h b/lib/CodeGen/AsmPrinter/DwarfPrinter.h
index 01aa775..33ebb3b 100644
--- a/lib/CodeGen/AsmPrinter/DwarfPrinter.h
+++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.h
@@ -100,18 +100,16 @@
     void PrintLabelName(const DWLabel &Label) const {
       PrintLabelName(Label.getTag(), Label.getNumber());
     }
+    void PrintLabelName(const char *Tag, unsigned Number) const;
     void PrintLabelName(const char *Tag, unsigned Number,
-                        bool ForcePrivate = true) const;
-    void PrintLabelName(const char *Tag, unsigned Number,
-                        const char *Suffix, bool ForcePrivate = true) const;
+                        const char *Suffix) const;
 
     /// EmitLabel - Emit location label for internal use by Dwarf.
     ///
     void EmitLabel(const DWLabel &Label) const {
       EmitLabel(Label.getTag(), Label.getNumber());
     }
-    void EmitLabel(const char *Tag, unsigned Number,
-                   bool ForcePrivate = true) const;
+    void EmitLabel(const char *Tag, unsigned Number) const;
 
     /// EmitReference - Emit a reference to a label.
     ///
