diff --git a/lib/Bytecode/Reader/ConstantReader.cpp b/lib/Bytecode/Reader/ConstantReader.cpp
index 671afd2..78da567 100644
--- a/lib/Bytecode/Reader/ConstantReader.cpp
+++ b/lib/Bytecode/Reader/ConstantReader.cpp
@@ -55,7 +55,7 @@
     const Type *ElementType = getType(ElTyp);
     if (ElementType == 0) return failure(Val);
 
-    int NumElements;
+    unsigned NumElements;
     if (read_vbr(Buf, EndBuf, NumElements)) return failure(Val);
 
     BCR_TRACE(5, "Array Type Constant #" << ElTyp << " size=" 
@@ -239,11 +239,7 @@
 
   case Type::ArrayTyID: {
     const ArrayType *AT = cast<const ArrayType>(Ty);
-    unsigned NumElements;
-    if (AT->isSized())          // Sized array, # elements stored in type!
-      NumElements = (unsigned)AT->getNumElements();
-    else                        // Unsized array, # elements stored in stream!
-      if (read_vbr(Buf, EndBuf, NumElements)) return failure(true);
+    unsigned NumElements = AT->getNumElements();
 
     vector<Constant*> Elements;
     while (NumElements--) {   // Read all of the elements of the constant.
@@ -320,6 +316,7 @@
       break;
     }
     default:
+      BCR_TRACE(5, "UNKNOWN Pointer Constant Type!\n");
       return failure(true);
     }
     break;
diff --git a/lib/Bytecode/Writer/ConstantWriter.cpp b/lib/Bytecode/Writer/ConstantWriter.cpp
index 0700a2e..bcfa976 100644
--- a/lib/Bytecode/Writer/ConstantWriter.cpp
+++ b/lib/Bytecode/Writer/ConstantWriter.cpp
@@ -123,9 +123,7 @@
   case Type::ArrayTyID: {
     const ConstantArray *CPA = cast<const ConstantArray>(CPV);
     unsigned size = CPA->getValues().size();
-    if (!((const ArrayType *)CPA->getType())->isSized())
-      output_vbr(size, Out);            // Not for sized arrays!!!
-
+    assert(size == cast<ArrayType>(CPA->getType())->getNumElements() && "ConstantArray out of whack!");
     for (unsigned i = 0; i < size; i++) {
       int Slot = Table.getValSlot(CPA->getOperand(i));
       assert(Slot != -1 && "Constant used but not available!!");
