diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java
index f873109da07b8215fc2cbf199541c0ec6dd8e2df..e4eabf251c08f14a3b4c68cae04097fbc6f3fcd1 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java
@@ -1267,8 +1267,8 @@ public class GrepFunctions {
                 lastEndIndex = endIndex;
                 matches.add(match);
             }
-            if (lastEndOffset < data.length()) {
-                matches.add(data.substring(lastEndOffset));
+            if (lastEndIndex < data.length()) {
+                matches.add(data.substring(lastEndIndex));
             }
             String[] result = new String[matches.size()];
             matches.toArray(result);
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java
index f508fdd27b6c4a938a5a8cf3c2c6e43f67cff2e3..3a060acb8ddaf346b119d28ca8af4104351bf311 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java
@@ -121,5 +121,6 @@ public class TestBuiltin_strsplit extends TestBase {
         assertEval("strsplit('foo bar baz', '[f z]', perl=TRUE)");
         assertEval("strsplit('oo bar baz', '[f z]', perl=TRUE)");
         assertEval("strsplit('foo \u1010ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄbar baz ', '[f z]', perl=TRUE)");
+        assertEval("strsplit('Ä Ä', '[ ]', perl=TRUE)");
     }
 }