diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index a26ea80..d865742 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -969,13 +969,23 @@
   };
 
 
+// FIXME: ConstExpr::get never return null!
 ConstExpr: Types CAST ConstVal {
     ConstantExpr* CPE = ConstantExpr::get($2, $3, $1->get());
     if (CPE == 0) ThrowException("constant expression builder returned null!");
     $$ = CPE;
   }
   | Types GETELEMENTPTR '(' ConstVal IndexList ')' {
-    ConstantExpr* CPE = ConstantExpr::get($2, $4, *$5, $1->get());
+    vector<Constant*> IdxVec;
+    for (unsigned i = 0, e = $5->size(); i != e; ++i)
+      if (Constant *C = dyn_cast<Constant>((*$5)[i]))
+        IdxVec.push_back(C);
+      else
+        ThrowException("Arguments to getelementptr must be constants!");
+
+    delete $5;
+
+    ConstantExpr* CPE = ConstantExpr::get($2, $4, IdxVec, $1->get());
     if (CPE == 0) ThrowException("constant expression builder returned null!");
     $$ = CPE;
   }
diff --git a/lib/Bytecode/Reader/ConstantReader.cpp b/lib/Bytecode/Reader/ConstantReader.cpp
index 68d6a62..6bbeb86 100644
--- a/lib/Bytecode/Reader/ConstantReader.cpp
+++ b/lib/Bytecode/Reader/ConstantReader.cpp
@@ -204,7 +204,7 @@
       
       // Get the arg value from its slot if it exists, otherwise a placeholder
       Value *Val = getValue(argTy, argValSlot, false);
-      Constant* C;
+      Constant *C;
       if (Val) {
         if (!(C = dyn_cast<Constant>(Val))) return failure(true);
         BCR_TRACE(5, "Constant Found in ValueTable!\n");
@@ -218,7 +218,7 @@
     if (isExprNumArgs == 1) {           // All one-operand expressions
       V = ConstantExpr::get(opCode, argVec[0], Ty);
     } else if (opCode == Instruction::GetElementPtr) { // GetElementPtr
-      std::vector<Value*> IdxList(argVec.begin()+1, argVec.end());
+      std::vector<Constant*> IdxList(argVec.begin()+1, argVec.end());
       V = ConstantExpr::get(opCode, argVec[0], IdxList, Ty);
     } else {                            // All other 2-operand expressions
       V = ConstantExpr::get(opCode, argVec[0], argVec[1], Ty);
