diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index db87f76..116143e 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -643,7 +643,7 @@
   unsigned StartOffset = 0;
   unsigned MemberNum = 0;
   std::vector<StringRef> SymNames;
-  std::vector<OwningPtr<object::ObjectFile> > DeleteIt;
+  std::vector<object::ObjectFile *> DeleteIt;
   for (ArrayRef<NewArchiveIterator>::iterator I = Members.begin(),
                                               E = Members.end();
        I != E; ++I, ++MemberNum) {
@@ -665,7 +665,7 @@
     }
     if (!Obj)
       continue;
-    DeleteIt.push_back(OwningPtr<object::ObjectFile>(Obj));
+    DeleteIt.push_back(Obj);
     if (!StartOffset) {
       printMemberHeader(Out, "", sys::TimeValue::now(), 0, 0, 0, 0);
       StartOffset = Out.tell();
@@ -698,6 +698,13 @@
     Out << '\0';
   }
 
+  for (std::vector<object::ObjectFile *>::iterator I = DeleteIt.begin(),
+                                                   E = DeleteIt.end();
+       I != E; ++I) {
+    object::ObjectFile *O = *I;
+    delete O;
+  }
+
   if (StartOffset == 0)
     return;
 
