diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 389dc57..4d1ee41 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -425,12 +425,9 @@
   if (Value *V = getValue(TypeSlot, Slot, false))
     if (Constant *C = dyn_cast<Constant>(V))
       return C;   // If we already have the value parsed, just return it
-    else if (GlobalValue *GV = dyn_cast<GlobalValue>(V))
-      // ConstantPointerRef's are an abomination, but at least they don't have
-      // to infest bytecode files.
-      return ConstantPointerRef::get(GV);
     else
-      error("Reference of a value is expected to be a constant!");
+      error("Value for slot " + utostr(Slot) + 
+            " is expected to be a constant!");
 
   const Type *Ty = getType(TypeSlot);
   std::pair<const Type*, unsigned> Key(Ty, Slot);
@@ -1356,14 +1353,13 @@
     GlobalValue *GV;
     if (Val) {
       if (!(GV = dyn_cast<GlobalValue>(Val))) 
-        error("Value of ConstantPointerRef not in ValueTable!");
+        error("GlobalValue not in ValueTable!");
     } else {
       error("Forward references are not allowed here.");
     }
     
-    Constant* Result = ConstantPointerRef::get(GV);
-    if (Handler) Handler->handleConstantPointer(PT, Slot, GV, Result);
-    return Result;
+    if (Handler) Handler->handleConstantPointer(PT, Slot, GV );
+    return GV;
   }
 
   default:
