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.
diff --git a/test/CodeGen/unsupported.c b/test/CodeGen/unsupported.c
index 2c87163..664119a 100644
--- a/test/CodeGen/unsupported.c
+++ b/test/CodeGen/unsupported.c
@@ -1,6 +1,6 @@
 // RUN: clang -verify -emit-llvm -o %t %s 
 
 int f0(int x) {
-  int vla[x]; // expected-error {{cannot codegen this variable-length array yet}}
-  return vla[x-1];
+  int vla[x];
+  return vla[x-1]; // expected-error {{cannot codegen this return inside scope with VLA yet}}
 }
