diff --git a/render.js b/render.js
index 44489c2..f748c0e 100644
--- a/render.js
+++ b/render.js
@@ -1086,10 +1086,11 @@
 
   function unselectBy(ingrid, keys) {
     var outgrid = {headers: [], data: [], types: []};
-    var keycols = [];
+    var keycols = {};
     for (var keyi in keys) {
       var key = keys[keyi];
-      keycols.push(keyToColNum(ingrid, key));
+      var col = keyToColNum(ingrid, key);
+      keycols[col] = true;
     }
 
     for (var headi = 0; headi < ingrid.headers.length; headi++) {
diff --git a/t/trender.js b/t/trender.js
index 56e7f37..bb01ede 100644
--- a/t/trender.js
+++ b/t/trender.js
@@ -150,29 +150,29 @@
       [13, 14, 15],
     ]
   };
-  var dt = afterquery.internal.unselectBy(grid, 'a');
+  var dt = afterquery.internal.unselectBy(grid, 'b');
   dump(dt);
   WVPASSEQ(dt.headers.length, 2);
-  WVPASSEQ(dt.headers[0], 'b');
+  WVPASSEQ(dt.headers[0], 'a');
   WVPASSEQ(dt.headers[1], 'c');
   WVPASSEQ(dt.types.length, 2);
   WVPASSEQ(dt.types[0], 'number');
   WVPASSEQ(dt.types[1], 'number');
   WVPASSEQ(dt.data.length, 5);
   WVPASSEQ(dt.data[0].length, 2);
-  WVPASSEQ(dt.data[0][0], 2);
+  WVPASSEQ(dt.data[0][0], 1);
   WVPASSEQ(dt.data[0][1], 3);
   WVPASSEQ(dt.data[1].length, 2);
-  WVPASSEQ(dt.data[1][0], 5);
+  WVPASSEQ(dt.data[1][0], 4);
   WVPASSEQ(dt.data[1][1], 6);
   WVPASSEQ(dt.data[2].length, 2);
-  WVPASSEQ(dt.data[2][0], 8);
+  WVPASSEQ(dt.data[2][0], 7);
   WVPASSEQ(dt.data[2][1], 9);
   WVPASSEQ(dt.data[3].length, 2);
-  WVPASSEQ(dt.data[3][0], 11);
+  WVPASSEQ(dt.data[3][0], 10);
   WVPASSEQ(dt.data[3][1], 12);
   WVPASSEQ(dt.data[4].length, 2);
-  WVPASSEQ(dt.data[4][0], 14);
+  WVPASSEQ(dt.data[4][0], 13);
   WVPASSEQ(dt.data[4][1], 15);
 });
 
