diff --git a/llvm/lib/Bytecode/Reader/ArchiveReader.cpp b/llvm/lib/Bytecode/Reader/ArchiveReader.cpp
index 1baaff2..b147cb3 100644
--- a/llvm/lib/Bytecode/Reader/ArchiveReader.cpp
+++ b/llvm/lib/Bytecode/Reader/ArchiveReader.cpp
@@ -122,17 +122,8 @@
       while (endp[-1] == ' ')
         --endp;
     }
-
-    //
-    // We now have the beginning and the end of the object name.
-    // Convert this into a dynamically allocated std::string to pass
-    // to the routines that create the Module object.  We do this
-    // (I think) because the created Module object will outlive this function,
-    // but statically declared std::string's won't.
-    //
     std::string MemberName (startp, endp);
-    std::string * FullMemberName;
-    FullMemberName = new std::string (ArchiveName + "(" + MemberName + ")");
+    std::string FullMemberName = ArchiveName + "(" + MemberName + ")";
 
     switch (getObjectType(Hdr, MemberData, MemberSize)) {
     case SVR4LongFilename:
@@ -142,7 +133,7 @@
       break;
     case UserObject: {
       Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
-                                      *(FullMemberName), ErrorStr);
+                                      FullMemberName, ErrorStr);
       if (!M) return true;
       Objects.push_back(M);
       break;
@@ -153,7 +144,7 @@
       break;
     default:
       std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
-                << *(FullMemberName) << "\n";
+                << FullMemberName << "\n";
       break;   // Just ignore unknown files.
     }
 
