Merge branch 'master' of https://github.com/DentonGentry/afterquery

Conflicts:
	render.js
	t/trender.js
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);
 });