diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index dfa53ac..07ce6b0 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -2034,6 +2034,17 @@
     ImpCastExprToType(rex, lType); // promote the pointer to pointer
     return Context.IntTy;
   }
+  // Allow block pointers to be compared with null pointer constants.
+  if ((lType->isBlockPointerType() && rType->isPointerType()) ||
+      (lType->isPointerType() && rType->isBlockPointerType())) {
+    if (!LHSIsNull && !RHSIsNull) {
+      Diag(loc, diag::err_typecheck_comparison_of_distinct_blocks,
+           lType.getAsString(), rType.getAsString(),
+           lex->getSourceRange(), rex->getSourceRange());
+    }
+    ImpCastExprToType(rex, lType); // promote the pointer to pointer
+    return Context.IntTy;
+  }
 
   if ((lType->isObjCQualifiedIdType() || rType->isObjCQualifiedIdType())) {
     if (ObjCQualifiedIdTypesAreCompatible(lType, rType, true)) {
diff --git a/test/Sema/block-return.c b/test/Sema/block-return.c
index ba3a0d2..b88fb9b 100644
--- a/test/Sema/block-return.c
+++ b/test/Sema/block-return.c
@@ -72,7 +72,10 @@
 }
 
 static int funk(char *s) {
-  return 1;
+  if (^{} == ((void*)0))
+    return 1;
+  else 
+    return 0;
 }
 void foo4() {
   int (^xx)(const char *s) = ^(char *s) { return 1; }; // expected-warning {{incompatible block pointer types initializing 'int (^)(char *)', expected 'int (^)(char const *)'}}
