diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp
index 969e4c9..598191f57 100644
--- a/lib/Analysis/BasicStore.cpp
+++ b/lib/Analysis/BasicStore.cpp
@@ -213,11 +213,10 @@
       const MemRegion *R = cast<loc::MemRegionVal>(BaseL).getRegion();
       
       if (isa<ElementRegion>(R)) {
-        // Basic example:
-        //   char buf[100];
-        //   char *q = &buf[1];  // p points to ElementRegion(buf,Unknown)
-        //   &q[10]
-        //assert(cast<ElementRegion>(R)->getIndex().isUnknown());
+        // int x;
+        // char* y = (char*) &x;
+        // 'y' => ElementRegion(0, VarRegion('x'))
+        // y[0] = 'a';
         return Base;
       }
       
diff --git a/lib/Analysis/SVals.cpp b/lib/Analysis/SVals.cpp
index 71f09d2..43ede0f 100644
--- a/lib/Analysis/SVals.cpp
+++ b/lib/Analysis/SVals.cpp
@@ -227,6 +227,10 @@
   return UnknownVal();  
 }
 
+SVal ValueManager::makeZeroIndex() {
+  return nonloc::ConcreteInt(BasicVals.getZeroWithPtrWidth(false));
+}
+
 //===----------------------------------------------------------------------===//
 // Utility methods for constructing Non-Locs.
 //===----------------------------------------------------------------------===//
diff --git a/lib/Analysis/Store.cpp b/lib/Analysis/Store.cpp
index 76437d2..c9c49c6 100644
--- a/lib/Analysis/Store.cpp
+++ b/lib/Analysis/Store.cpp
@@ -67,7 +67,7 @@
         // the types aren't the same, so we construct an ElementRegion.
         // FIXME: We should have a standard query function to get the size
         //  of the array index.
-        SVal Idx = ValMgr.makeZeroVal(ValMgr.getContext().VoidPtrTy);
+        SVal Idx = ValMgr.makeZeroIndex();
         
         // If the super region is an element region, strip it away.
         // FIXME: Is this the right thing to do in all cases?
