diff --git a/lib/decoding/openbts/ViterbiR204.cpp b/lib/decoding/openbts/ViterbiR204.cpp
index 296e292..fe31aad 100644
--- a/lib/decoding/openbts/ViterbiR204.cpp
+++ b/lib/decoding/openbts/ViterbiR204.cpp
@@ -28,6 +28,7 @@
 #include <stdio.h>
 #include <sstream>
 #include <string.h>
+#include <cstdlib>
 
 using namespace std;
 
@@ -70,7 +71,7 @@
 	assert(sz*coder.iRate() == target.size());
 
 	// Build a "history" array where each element contains the full history.
-	uint32_t history[sz];
+	uint32_t * history = (uint32_t *) malloc(sizeof(uint32_t)*sz);
 	uint32_t accum = 0;
 	for (size_t i=0; i<sz; i++) {
 		accum = (accum<<1) | in.bit(i);
@@ -85,6 +86,7 @@
 			*op++ = coder.stateTable(g,index);
 		}
 	}
+	free(history);
 }
 
 
@@ -224,7 +226,7 @@
 
 	// Build a "history" array where each element contains the full history.
 	// (pat) We only use every other history element, so why are we setting them?
-	uint32_t history[ctsz];
+	uint32_t * history = (uint32_t *)malloc(sizeof(uint32_t)*ctsz);
 	{
 		BitVector bits = in.sliced();
 		uint32_t accum = 0;
@@ -241,8 +243,8 @@
 	}
 
 	// Precompute metric tables.
-	float matchCostTable[ctsz];
-	float mismatchCostTable[ctsz];
+	float * matchCostTable = (float *)malloc(sizeof(float)*ctsz);
+	float * mismatchCostTable = (float *)malloc(sizeof(float)*ctsz);
 	{
 		const float *dp = in.begin();
 		for (size_t i=0; i<sz; i++) {
@@ -296,6 +298,9 @@
 		// Dont think minCost == NULL can happen.
 		mBitErrorCnt = minCost ? minCost->bitErrorCnt : 0;
 	}
+	free(history);
+	free(matchCostTable);
+	free(mismatchCostTable);
 }
 
 // vim: ts=4 sw=4
