diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index e8b4d8c..dfa53ac 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -366,9 +366,14 @@
   }
   // If we are parsing a block, check the block parameter list.
   if (CurBlock) {
-    for (unsigned i = 0, e = CurBlock->Params.size(); i != e; ++i)
-      if (CurBlock->Params[i]->getIdentifier() == &II)
-        D = CurBlock->Params[i];
+    BlockSemaInfo *BLK = CurBlock;
+    do {
+      for (unsigned i = 0, e = BLK->Params.size(); i != e && D == 0; ++i)
+        if (BLK->Params[i]->getIdentifier() == &II)
+          D = BLK->Params[i];
+      if (D) 
+        break; // Found!
+    } while ((BLK = BLK->PrevBlockInfo));  // Look through any enclosing blocks.
   }
   if (D == 0) {
     // Otherwise, this could be an implicitly declared function reference (legal
diff --git a/test/Sema/block-return.c b/test/Sema/block-return.c
index 6d660d1..ba3a0d2 100644
--- a/test/Sema/block-return.c
+++ b/test/Sema/block-return.c
@@ -77,4 +77,6 @@
 void foo4() {
   int (^xx)(const char *s) = ^(char *s) { return 1; }; // expected-warning {{incompatible block pointer types initializing 'int (^)(char *)', expected 'int (^)(char const *)'}}
   int (*yy)(const char *s) = funk; // expected-warning {{incompatible pointer types initializing 'int (char *)', expected 'int (*)(char const *)'}}
+  
+  int (^nested)(char *s) = ^(char *str) { void (^nest)(void) = ^(void) { printf("%s\n", str); }; next(); return 1; };
 }
