diff --git a/include/clang/Analysis/PathSensitive/MemRegion.h b/include/clang/Analysis/PathSensitive/MemRegion.h
index 2a20b63..5142427 100644
--- a/include/clang/Analysis/PathSensitive/MemRegion.h
+++ b/include/clang/Analysis/PathSensitive/MemRegion.h
@@ -327,13 +327,13 @@
   }
 };
 
-class ElementRegion : public SubRegion {
+class ElementRegion : public TypedRegion {
   friend class MemRegionManager;
 
   SVal Index;
 
   ElementRegion(SVal Idx, const MemRegion* sReg)
-    : SubRegion(sReg, ElementRegionKind), Index(Idx) {}
+    : TypedRegion(sReg, ElementRegionKind), Index(Idx) {}
 
   static void ProfileRegion(llvm::FoldingSetNodeID& ID, SVal Idx, 
                             const MemRegion* superRegion);
@@ -342,6 +342,8 @@
 
   SVal getIndex() const { return Index; }
 
+  QualType getType(ASTContext&) const;
+
   void print(llvm::raw_ostream& os) const;
 
   void Profile(llvm::FoldingSetNodeID& ID) const;
diff --git a/lib/Analysis/MemRegion.cpp b/lib/Analysis/MemRegion.cpp
index f14e0cb..1db330c 100644
--- a/lib/Analysis/MemRegion.cpp
+++ b/lib/Analysis/MemRegion.cpp
@@ -83,6 +83,13 @@
 void ElementRegion::Profile(llvm::FoldingSetNodeID& ID) const {
   ElementRegion::ProfileRegion(ID, Index, superRegion);
 }
+
+QualType ElementRegion::getType(ASTContext& C) const {
+  QualType T = cast<TypedRegion>(superRegion)->getType(C);
+  ArrayType* AT = cast<ArrayType>(T.getTypePtr());
+  return AT->getElementType();
+}
+
 //===----------------------------------------------------------------------===//
 // Region pretty-printing.
 //===----------------------------------------------------------------------===//
