diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 2ff2bee..f0aa8b7 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -321,9 +321,7 @@
     llvm::GlobalValue *GA = 
       new llvm::GlobalAlias(aliasee->getType(),
                             llvm::Function::ExternalLinkage,
-                            D->getName(),
-                            aliasee,
-                            &getModule());
+                            D->getNameAsString(), aliasee, &getModule());
     
     llvm::GlobalValue *&Entry = GlobalDeclMap[D->getIdentifier()];
     if (Entry) {
@@ -482,7 +480,7 @@
   if (!Entry)
     Entry = new llvm::GlobalVariable(Ty, false, 
                                      llvm::GlobalValue::ExternalLinkage,
-                                     0, D->getName(), &getModule(), 0,
+                                     0, D->getNameAsString(), &getModule(), 0,
                                      ASTTy.getAddressSpace());
   
   // Make sure the result is of the correct type.
@@ -518,7 +516,7 @@
   if (!GV) {
     GV = new llvm::GlobalVariable(InitType, false, 
                                   llvm::GlobalValue::ExternalLinkage,
-                                  0, D->getName(), &getModule(), 0,
+                                  0, D->getNameAsString(), &getModule(), 0,
                                   ASTTy.getAddressSpace());
   } else if (GV->getType() != 
              llvm::PointerType::get(InitType, ASTTy.getAddressSpace())) {
@@ -542,7 +540,7 @@
     // Make a new global with the correct type
     GV = new llvm::GlobalVariable(InitType, false, 
                                   llvm::GlobalValue::ExternalLinkage,
-                                  0, D->getName(), &getModule(), 0,
+                                  0, D->getNameAsString(), &getModule(), 0,
                                   ASTTy.getAddressSpace());
     // Steal the name of the old global
     GV->takeName(OldGV);
@@ -630,7 +628,7 @@
   const llvm::Type *Ty = getTypes().ConvertType(D->getType());
   llvm::Function *F = llvm::Function::Create(cast<llvm::FunctionType>(Ty), 
                                              llvm::Function::ExternalLinkage,
-                                             D->getName(), &getModule());
+                                             D->getNameAsString(),&getModule());
   SetFunctionAttributes(D, F);
   return F;
 }
