diff --git a/interp.js b/interp.js
index 52f22f87cfe206c6bee9f54862bcc0677e393c3e..7b57397fa407af6e9517876a78fa85cde922399d 100644
--- a/interp.js
+++ b/interp.js
@@ -597,14 +597,19 @@ function esprimaExprToAST(expr) {
 
 function esprimaSeqToAST(stats) {
   var state = {prog: stats, index: 0};
-  var res = esprimaStatsToAST(state);
-  var start = res.start;
-  var next;
+  var seql = [];
+  var prev;
   while (state.index < state.prog.length) {
-    next = esprimaStatsToAST(state);
-    res = trm_seq(next.line, res, next);
-    res.start = start;
-    res.end = next.end;
+    seql.push(esprimaStatsToAST(state));
+  }
+  if (seql.length === 0) throw "Empty block";
+  var res = seql.pop();
+  var end = res.end;
+  while (seql.length > 0) {
+    prev = seql.pop();
+    res = trm_seq(prev.line, prev, res);
+    res.start = prev.start;
+    res.end = end;
   }
   return res;
 }