diff --git a/reading_machine/src/Action.cpp b/reading_machine/src/Action.cpp
index 2d0aa648779929933f0461a0159c0dc84f879f4d..4dc7d6f74168f2c527117f0be42c8792bf19b7c3 100644
--- a/reading_machine/src/Action.cpp
+++ b/reading_machine/src/Action.cpp
@@ -386,7 +386,15 @@ Action Action::addCurCharToCurWord()
 
   auto appliable = [](const Config & config, const Action &)
   {
-    return config.hasCharacter(config.getCharacterIndex()) and !util::isIllegal(config.getLetter(config.getCharacterIndex()));
+    if (!config.hasCharacter(config.getCharacterIndex()))
+      return false;
+
+    auto letter = config.getLetter(config.getCharacterIndex());
+
+    if (letter == ' ')
+      return !util::isEmpty(config.getAsFeature("FORM", config.getWordIndex()));
+
+    return !util::isIllegal(letter);
   };
 
   return {Type::Write, apply, undo, appliable};