diff --git a/lib/Frontend/RewriteObjC.cpp b/lib/Frontend/RewriteObjC.cpp
index a1fed8d..378b422 100644
--- a/lib/Frontend/RewriteObjC.cpp
+++ b/lib/Frontend/RewriteObjC.cpp
@@ -4266,6 +4266,17 @@
   // Insert declaration for the function in which block literal is used.
   if (CurFunctionDeclToDeclareForBlock && !Blocks.empty())
     RewriteBlockLiteralFunctionDecl(CurFunctionDeclToDeclareForBlock);
+  bool RewriteSC = (GlobalVarDecl &&
+                    !Blocks.empty() &&
+                    GlobalVarDecl->getStorageClass() == VarDecl::Static &&
+                    GlobalVarDecl->getType().getCVRQualifiers());
+  if (RewriteSC) {
+    std::string SC(" void __");
+    SC += GlobalVarDecl->getNameAsString();
+    SC += "() {}";
+    InsertText(FunLocStart, SC);
+  }
+  
   // Insert closures that were part of the function.
   for (unsigned i = 0, count=0; i < Blocks.size(); i++) {
     CollectBlockDeclRefInfo(Blocks[i]);
@@ -4311,21 +4322,19 @@
     BlockByCopyDeclsPtrSet.clear();
     ImportedBlockDecls.clear();
   }
-  if (GlobalVarDecl && !Blocks.empty()) {
+  if (RewriteSC) {
     // Must insert any 'const/volatile/static here. Since it has been
     // removed as result of rewriting of block literals.
-    // FIXME. We add as we need.
     std::string SC;
     if (GlobalVarDecl->getStorageClass() == VarDecl::Static)
       SC = "static ";
-    if (GlobalVarDecl->getStorageClass() == VarDecl::Extern)
-      SC = "extern ";
     if (GlobalVarDecl->getType().isConstQualified())
       SC += "const ";
     if (GlobalVarDecl->getType().isVolatileQualified())
       SC += "volatile ";
-    if (!SC.empty())
-      InsertText(FunLocStart, SC);
+    if (GlobalVarDecl->getType().isRestrictQualified())
+      SC += "restrict ";
+    InsertText(FunLocStart, SC);
   }
   
   Blocks.clear();
