diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 0f2af20..967670f 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1024,8 +1024,9 @@
   }
   | UpRTypesV '(' ArgTypeListI ')' {           // Function derived type?
     std::vector<const Type*> Params;
-    mapto($3->begin(), $3->end(), std::back_inserter(Params), 
-          std::mem_fun_ref(&PATypeHolder::get));
+    for (std::list<llvm::PATypeHolder>::iterator I = $3->begin(),
+           E = $3->end(); I != E; ++I)
+      Params.push_back(*I);
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
@@ -1050,9 +1051,10 @@
   }
   | '{' TypeListI '}' {                        // Structure type?
     std::vector<const Type*> Elements;
-    mapto($2->begin(), $2->end(), std::back_inserter(Elements), 
-        std::mem_fun_ref(&PATypeHolder::get));
-
+    for (std::list<llvm::PATypeHolder>::iterator I = $2->begin(),
+           E = $2->end(); I != E; ++I)
+      Elements.push_back(*I);
+    
     $$ = new PATypeHolder(HandleUpRefs(StructType::get(Elements)));
     delete $2;
   }
