diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp
index 1c72ba1..62684ba 100644
--- a/lib/CodeGen/CGDecl.cpp
+++ b/lib/CodeGen/CGDecl.cpp
@@ -160,15 +160,6 @@
         D.getStorageClass() == VarDecl::Register ? ".reg." : ".auto.";
       DeclPtr = GenerateStaticBlockVarDecl(D, true, Class);
     }
-  } else if (1) {
-    // FIXME: The code below is disabled because is causes a regression in the
-    // testsuite.
-    CGM.ErrorUnsupported(&D, "variable-length array"); 
-    
-    const llvm::Type *LTy = ConvertType(Ty);
-    llvm::AllocaInst *Alloc = 
-      CreateTempAlloca(LTy, D.getIdentifier()->getName());
-    DeclPtr = Alloc;
   } else {
     const VariableArrayType *VAT = getContext().getAsVariableArrayType(Ty);
 
diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp
index afce63d..6d8f5da 100644
--- a/lib/CodeGen/CGStmt.cpp
+++ b/lib/CodeGen/CGStmt.cpp
@@ -220,6 +220,11 @@
     return;
   }
 
+  if (StackSaveValues.back()) {
+    CGM.ErrorUnsupported(&S, "goto inside scope with VLA");
+    return;
+  }
+  
   // If this code is reachable then emit a stop point (if generating
   // debug info). We have to do this ourselves because we are on the
   // "simple" statement path.
@@ -471,6 +476,11 @@
 /// if the function returns void, or may be missing one if the function returns
 /// non-void.  Fun stuff :).
 void CodeGenFunction::EmitReturnStmt(const ReturnStmt &S) {
+  if (StackSaveValues.back()) {
+    CGM.ErrorUnsupported(&S, "return inside scope with VLA");
+    return;
+  }
+  
   // Emit the result value, even if unused, to evalute the side effects.
   const Expr *RV = S.getRetValue();
   
@@ -514,10 +524,15 @@
 
   // FIXME: Implement break in @try or @catch blocks.
   if (ObjCEHStack.size() != BreakContinueStack.back().EHStackSize) {
-    CGM.ErrorUnsupported(&S, "continue inside an Obj-C exception block");
+    CGM.ErrorUnsupported(&S, "break inside an Obj-C exception block");
     return;
   }
 
+  if (StackSaveValues.back()) {
+    CGM.ErrorUnsupported(&S, "break inside scope with VLA");
+    return;
+  }
+  
   // If this code is reachable then emit a stop point (if generating
   // debug info). We have to do this ourselves because we are on the
   // "simple" statement path.
@@ -536,6 +551,11 @@
     return;
   }
 
+  if (StackSaveValues.back()) {
+    CGM.ErrorUnsupported(&S, "continue inside scope with VLA");
+    return;
+  }
+  
   // If this code is reachable then emit a stop point (if generating
   // debug info). We have to do this ourselves because we are on the
   // "simple" statement path.
