diff --git a/extra/modern/modern.factor b/extra/modern/modern.factor
index 64e637a0b8..d013dc61fe 100644
--- a/extra/modern/modern.factor
+++ b/extra/modern/modern.factor
@@ -218,9 +218,11 @@ ERROR: no-backslash-payload n string slice ;
     ] when ;
 
 ! If the slice is 0 width, we stopped on whitespace.
-! Advance the index and read again somewhere else!
+! Advance the index and read again!
 : read-token-or-whitespace ( n string slice -- n' string slice/f )
-    dup length 0 = [ [ 1 + ] 2dip ] when ;
+    dup length 0 = [
+        [ 1 + ] 2dip drop lex-factor
+    ] when ;
 
 ERROR: mismatched-terminator n string slice ;
 : read-terminator ( n string slice -- n' string slice ) ;