diff --git a/extras/rya.streams/client/src/test/java/org/apache/rya/streams/client/command/RunQueryCommandIT.java b/extras/rya.streams/client/src/test/java/org/apache/rya/streams/client/command/RunQueryCommandIT.java
index 03834e9..6df7a3d 100644
--- a/extras/rya.streams/client/src/test/java/org/apache/rya/streams/client/command/RunQueryCommandIT.java
+++ b/extras/rya.streams/client/src/test/java/org/apache/rya/streams/client/command/RunQueryCommandIT.java
@@ -206,7 +206,7 @@
 
     @Test
     public void runQueryFromFile() throws Exception {
-        // NOTE: the order of the query statements previously lead to join
+        // NOTE: the order of the query statements previously led to join
         // issues. When "lubm:undergraduateDegreeFrom" was the first statement
         // in the where clause (as opposed to the last) the
         // KeyValueJoinStateStore blew up.
diff --git a/extras/rya.streams/kafka/src/main/java/org/apache/rya/streams/kafka/processors/join/KeyValueJoinStateStore.java b/extras/rya.streams/kafka/src/main/java/org/apache/rya/streams/kafka/processors/join/KeyValueJoinStateStore.java
index 8df77c4..61ca141 100644
--- a/extras/rya.streams/kafka/src/main/java/org/apache/rya/streams/kafka/processors/join/KeyValueJoinStateStore.java
+++ b/extras/rya.streams/kafka/src/main/java/org/apache/rya/streams/kafka/processors/join/KeyValueJoinStateStore.java
@@ -53,12 +53,14 @@
  * next to each other within the store. This isn't enough information to fetch that group, though. We must provide a
  * start and end key to bound the range that is fetched back. To accomplish this, we place a start of range marker
  * as the first key for all unique [side]/[join values] groups, and an end of range marker as the last key for each
- * of those groups.
+ * of those groups. All keys in between the start and end markers separate their
+ * [joinVars] from their [remainingBindingValues] with the join variable end
+ * marker, {@link #JOIN_VAR_END_MARKER}.
  * </p>
  * The rows follow this pattern:
  * <pre>
  * [side],[joinVar1 value], [joinVar2 value], ..., [joinVarN value]0x00
- * [side],[joinVar1 value], [joinVar2 value], ..., [joinVarN value],[remainingBindingValues]
+ * [side],[joinVar1 value], [joinVar2 value], ..., [joinVarN value][JOIN_VAR_END_MARKER],[remainingBindingValues]
  * [side],[joinVar1 value], [joinVar2 value], ..., [joinVarN value]0xFF
  * </pre>
  * </p>
@@ -80,9 +82,10 @@
     private static final String END_RANGE_SUFFIX = new String(new byte[] { (byte) 0xFF }, Charsets.UTF_8);
 
     /**
-     * Indicates where the end of the join variables occurs.
+     * Indicates where the end of the join variables occurs and the start of
+     * the remaining binding values should begin.
      */
-    private static final String JOIN_VAR_END_MARKER = new String("~!^~".getBytes(Charsets.UTF_8), Charsets.UTF_8);
+    private static final String JOIN_VAR_END_MARKER = new String(new byte[] { (byte) 0x06, (byte) 0x10, (byte) 0x03, (byte) 0x04}, Charsets.UTF_8);
 
     /**
      * A default empty value that is stored for a start of range or end of range marker.
@@ -275,7 +278,8 @@
                 // before the remaining "allVars")
                 // A marker is needed to indicate where the join vars end so
                 // that a range search from "urn:Student9[0x00]" to "urn:Student9[0xFF]"
-                // does not return "urn:Student95,[remainingBindingValues]".
+                // does not return "urn:Student95,[remainingBindingValues]"
+                // when we want "urn:Student9,[remainingBindingValues]".
                 value += JOIN_VAR_END_MARKER;
             }
             values.add(value);
