diff --git a/reading_machine/src/Config.cpp b/reading_machine/src/Config.cpp
index 019d17de0896083ba20d0791dd36c816c8144448..99a7d34bafda99d241eb827bbf1d11dd76ce0951 100644
--- a/reading_machine/src/Config.cpp
+++ b/reading_machine/src/Config.cpp
@@ -448,15 +448,15 @@ bool Config::moveWordIndex(int relativeMovement)
     dir = -1; 
 
   int movementDone = 0;
-  if (isMultiwordPredicted(wordIndex))
+  if (isMultiwordPredicted(wordIndex) and (dir >= 0 or wordIndex > 0))
     wordIndex += dir;
   while (movementDone != relativeMovement)
   {
-    if (isMultiwordPredicted(wordIndex))
+    if (isMultiwordPredicted(wordIndex) and (dir >= 0 or wordIndex > 0))
       wordIndex += dir;
     wordIndex += dir;
     movementDone += dir;
-    if (isMultiwordPredicted(wordIndex))
+    if (isMultiwordPredicted(wordIndex) and (dir >= 0 or wordIndex > 0))
       wordIndex += dir;
   }
 
@@ -468,7 +468,7 @@ void Config::moveWordIndexRelaxed(int relativeMovement)
   int dir = 1;
   if (relativeMovement < 0)
     dir = -1;
-  if (isMultiwordPredicted(wordIndex))
+  if (isMultiwordPredicted(wordIndex) and (dir >= 0 or wordIndex > 0))
     wordIndex += dir;
   for (int i = 0; i < abs(relativeMovement); i++)
     if (!moveWordIndex(dir))