diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h
index 3514af7..e41d8dc 100644
--- a/include/llvm/CodeGen/AsmPrinter.h
+++ b/include/llvm/CodeGen/AsmPrinter.h
@@ -351,8 +351,9 @@
     /// printSuffixedName - This prints a name with preceding 
     /// getPrivateGlobalPrefix and the specified suffix, handling quoted names
     /// correctly.
-    void printSuffixedName(const char *Name, const char* Suffix);
-    void printSuffixedName(std::string &Name, const char* Suffix);
+    void printSuffixedName(const char *Name, const char *Suffix,
+                           const char *Prefix = 0);
+    void printSuffixedName(const std::string &Name, const char* Suffix);
 
   private:
     void EmitLLVMUsedList(Constant *List);
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index 3f89792..6548f56 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -1445,14 +1445,23 @@
   }
 }
 
-void AsmPrinter::printSuffixedName(const char *Name, const char* Suffix) {
+void AsmPrinter::printSuffixedName(const char *Name, const char *Suffix,
+                                   const char *Prefix) {
   if (Name[0]=='\"')
-    O << '\"' << TAI->getPrivateGlobalPrefix() << 
-         Name[1] << Suffix << '\"';
+    O << '\"';
+  O << TAI->getPrivateGlobalPrefix();
+  if (Prefix) O << Prefix;
+  if (Name[0]=='\"')
+    O << '\"';
+  if (Name[0]=='\"')
+    O << Name[1];
   else
-    O << TAI->getPrivateGlobalPrefix() << Name << Suffix;
+    O << Name;
+  O << Suffix;
+  if (Name[0]=='\"')
+    O << '\"';
 }
 
-void AsmPrinter::printSuffixedName(std::string &Name, const char* Suffix) {
+void AsmPrinter::printSuffixedName(const std::string &Name, const char* Suffix) {
   printSuffixedName(Name.c_str(), Suffix);
 }
diff --git a/lib/Target/X86/X86ATTAsmPrinter.cpp b/lib/Target/X86/X86ATTAsmPrinter.cpp
index 463016c..a61bb22 100644
--- a/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -977,8 +977,7 @@
 /// printGVStub - Print stub for a global value.
 ///
 void X86ATTAsmPrinter::printGVStub(const char *GV, const char *Prefix) {
-  if (Prefix) O << Prefix;
-  printSuffixedName(GV, "$non_lazy_ptr");
+  printSuffixedName(GV, "$non_lazy_ptr", Prefix);
   O << ":\n\t.indirect_symbol ";
   if (Prefix) O << Prefix;
   O << GV << "\n\t.long\t0\n";
