diff --git a/dygraph-layout.js b/dygraph-layout.js
index <HASH>..<HASH> 100644
--- a/dygraph-layout.js
+++ b/dygraph-layout.js
@@ -211,6 +211,10 @@ DygraphLayout.prototype._evaluateLineCharts = function() {
   // on chrome+linux, they are 6 times more expensive than iterating through the
   // points and drawing the lines. The brunt of the cost comes from allocating
   // the |point| structures.
+  var boundaryIdStart = 0;
+  if (this.dygraph_.boundaryIds_.length > 0) {
+    boundaryIdStart = this.dygraph_.boundaryIds_[this.dygraph_.boundaryIds_.length-1][0]
+  }
   for (var setIdx = 0; setIdx < this.datasets.length; setIdx++) {
     var dataset = this.datasets[setIdx];
     var setName = this.setNames[setIdx];
@@ -243,7 +247,7 @@ DygraphLayout.prototype._evaluateLineCharts = function() {
         xval: xValue,
         yval: yValue,
         name: setName,  // TODO(danvk): is this really necessary?
-        idx: j + this.dygraph_.boundaryIds_[setIdx][0]
+        idx: j + boundaryIdStart
       };
     }
Bugfix: avoid exception when one series is hidden