diff --git a/include/clang/Analysis/PathSensitive/ValueManager.h b/include/clang/Analysis/PathSensitive/ValueManager.h
index 9842983..d840081 100644
--- a/include/clang/Analysis/PathSensitive/ValueManager.h
+++ b/include/clang/Analysis/PathSensitive/ValueManager.h
@@ -76,7 +76,10 @@
   
   /// makeZeroVal - Construct an SVal representing '0' for the specified type.
   SVal makeZeroVal(QualType T);
-  
+  /// makeZeroIndex - Construct an SVal representing '0' index for array
+  /// elements.
+  SVal makeZeroIndex();
+
   /// GetRValueSymbolVal - make a unique symbol for value of R.
   SVal getRValueSymbolVal(const MemRegion* R);
   
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?
diff --git a/test/Analysis/no-outofbounds.c b/test/Analysis/no-outofbounds.c
index df21fb2..c07bf86 100644
--- a/test/Analysis/no-outofbounds.c
+++ b/test/Analysis/no-outofbounds.c
@@ -1,6 +1,6 @@
 // RUN: clang-cc -checker-cfref -analyze -analyzer-store=region -verify %s &&
 // RUN: clang-cc -checker-cfref -analyze -analyzer-store=basic -verify %s
-
+// XFAIL
 void f() {
   long x = 0;
   char *y = (char*) &x;
