diff --git a/kudu/README.md b/kudu/README.md
index cd5cffd6387a0d92a8327638a1a1d72c1f70d949..e1f2b286438411b562d9b15d8e4dab2458cf2148 100644
--- a/kudu/README.md
+++ b/kudu/README.md
@@ -42,3 +42,15 @@ Then, you can run the workload:
 ```
 bin/ycsb run kudu -P workloads/workloada
 ```
+
+## Using a previous client version
+
+If you wish to use a different Kudu client version than the one shipped with YCSB, you can specify on the
+command line with `-Dkudu.version=x`. For example:
+
+```
+mvn -pl com.yahoo.ycsb:kudu-binding -am package -DskipTests -Dkudu.version=0.7.1
+```
+
+Note that prior to 1.0, Kudu doesn't guarantee wire or API compability between versions and only the latest
+one is officially supported.
diff --git a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
index 503c574af1f7f7dbcc2ececd8c8bff9ffc291fd1..05757b41f37b06dba7e8b604f3d062470b0c4556 100644
--- a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
+++ b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
@@ -233,17 +233,20 @@ public class KuduYCSBClient extends com.yahoo.ycsb.DB {
         scannerBuilder.setProjectedColumnNames(querySchema);
       }
 
-      PartialRow lowerBound = schema.newPartialRow();
-      lowerBound.addString(0, startkey);
-      scannerBuilder.lowerBound(lowerBound);
+      KuduPredicate.ComparisonOp comparisonOp;
       if (recordcount == 1) {
-        PartialRow upperBound = schema.newPartialRow();
-        // Keys are fixed length, just adding something at the end is safe.
-        upperBound.addString(0, startkey.concat(" "));
-        scannerBuilder.exclusiveUpperBound(upperBound);
+        comparisonOp = KuduPredicate.ComparisonOp.EQUAL;
+      } else {
+        comparisonOp = KuduPredicate.ComparisonOp.GREATER_EQUAL;
       }
+      KuduPredicate keyPredicate = KuduPredicate.newComparisonPredicate(
+          schema.getColumnByIndex(0),
+          comparisonOp,
+          startkey);
 
-      KuduScanner scanner = scannerBuilder.limit(recordcount) // currently noop
+      KuduScanner scanner = scannerBuilder
+          .addPredicate(keyPredicate)
+          .limit(recordcount) // currently noop
           .build();
 
       while (scanner.hasMoreRows()) {
diff --git a/pom.xml b/pom.xml
index d0028c8fd01a87672bd3467b74d12dda2ce2800d..3ab675444d62a47792a6d23c82ace0d8320800fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@ LICENSE file.
     <geode.version>1.0.0-incubating.M1</geode.version>
     <googlebigtable.version>0.2.3</googlebigtable.version>
     <infinispan.version>7.2.2.Final</infinispan.version>
-    <kudu.version>0.6.0</kudu.version>
+    <kudu.version>0.8.0</kudu.version>
     <openjpa.jdbc.version>2.1.1</openjpa.jdbc.version>
     <!--<mapkeeper.version>1.0</mapkeeper.version>-->
     <mongodb.version>3.0.3</mongodb.version>