diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp
index 86bc347..db6aae6 100644
--- a/lib/CodeGen/CGDecl.cpp
+++ b/lib/CodeGen/CGDecl.cpp
@@ -192,17 +192,9 @@
 
     // Allocate memory for the array.
     llvm::Value *VLA = Builder.CreateAlloca(llvm::Type::Int8Ty, VLASize, "vla");
-    VLA = Builder.CreateBitCast(VLA, LElemPtrTy, "tmp");
-
-    llvm::AllocaInst *Alloc = 
-      CreateTempAlloca(LElemPtrTy, D.getIdentifier()->getName());
-    
-    // FIXME: Volatile?
-    Builder.CreateStore(VLA, Alloc);
-    
-    DeclPtr = Alloc;
+    DeclPtr = Builder.CreateBitCast(VLA, LElemPtrTy, "tmp");
   }
-  
+
   llvm::Value *&DMEntry = LocalDeclMap[&D];
   assert(DMEntry == 0 && "Decl already exists in localdeclmap!");
   DMEntry = DeclPtr;
diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp
index ffb5164..4984d0d 100644
--- a/lib/CodeGen/CGExprScalar.cpp
+++ b/lib/CodeGen/CGExprScalar.cpp
@@ -513,16 +513,14 @@
     // FIXME: For now we assume that all source arrays map to LLVM arrays.  This
     // will not true when we add support for VLAs.
     Value *V = EmitLValue(Op).getAddress();  // Bitfields can't be arrays.
-    
-    if (!(isa<llvm::PointerType>(V->getType()) &&
-          isa<llvm::ArrayType>(cast<llvm::PointerType>(V->getType())
-                               ->getElementType()))) {
-      CGF.ErrorUnsupported(E, "variable-length array cast", true);
-      if (E->getType()->isVoidType())
-        return 0;
-      return llvm::UndefValue::get(CGF.ConvertType(E->getType()));
+
+    if (!Op->getType()->isVariableArrayType()) {
+      assert(isa<llvm::PointerType>(V->getType()) && "Expected pointer");
+      assert(isa<llvm::ArrayType>(cast<llvm::PointerType>(V->getType())
+                                 ->getElementType()) &&
+             "Expected pointer to array");
+      V = Builder.CreateStructGEP(V, 0, "arraydecay");
     }
-    V = Builder.CreateStructGEP(V, 0, "arraydecay");
     
     // The resultant pointer type can be implicitly casted to other pointer
     // types as well (e.g. void*) and can be implicitly converted to integer.
diff --git a/test/CodeGen/vla.c b/test/CodeGen/vla.c
new file mode 100644
index 0000000..a584020
--- /dev/null
+++ b/test/CodeGen/vla.c
@@ -0,0 +1,10 @@
+// RUN: clang %s -emit-llvm -o %t
+
+int b(char* x);
+
+// Extremely basic VLA test
+void a(int x) {
+  char arry[x];
+  arry[0] = 10;
+  b(arry);
+}
