diff --git a/lib/Analysis/ValueManager.cpp b/lib/Analysis/ValueManager.cpp
index 62d8b00..658dfa1 100644
--- a/lib/Analysis/ValueManager.cpp
+++ b/lib/Analysis/ValueManager.cpp
@@ -73,9 +73,9 @@
     if (T.isNull())
       T = TR->getValueType(SymMgr.getContext());
 
-    // If T is of function pointer type, create a CodeTextRegion wrapping a
-    // symbol.
-    if (T->isFunctionPointerType()) {
+    // If T is of function pointer type or a block pointer type, create a
+    // CodeTextRegion wrapping that symbol.
+    if (T->isFunctionPointerType() || T->isBlockPointerType()) {
       return loc::MemRegionVal(MemMgr.getCodeTextRegion(sym, T));
     }
     
@@ -94,9 +94,9 @@
   QualType T = E->getType();
   SymbolRef sym = SymMgr.getConjuredSymbol(E, Count);
 
-  // If T is of function pointer type, create a CodeTextRegion wrapping a
-  // symbol.
-  if (T->isFunctionPointerType()) {
+  // If T is of function pointer type or a block pointer type, create a
+  // CodeTextRegion wrapping a symbol.
+  if (T->isFunctionPointerType() || T->isBlockPointerType()) {
     return loc::MemRegionVal(MemMgr.getCodeTextRegion(sym, T));
   }
 
@@ -114,9 +114,9 @@
 
   SymbolRef sym = SymMgr.getConjuredSymbol(E, T, Count);
 
-  // If T is of function pointer type, create a CodeTextRegion wrapping a
-  // symbol.
-  if (T->isFunctionPointerType()) {
+  // If T is of function pointer type or a block pointer type, create a
+  // CodeTextRegion wrapping a symbol.
+  if (T->isFunctionPointerType() || T->isBlockPointerType()) {
     return loc::MemRegionVal(MemMgr.getCodeTextRegion(sym, T));
   }
 
