diff --git a/transition_machine/src/Config.cpp b/transition_machine/src/Config.cpp
index 21883263c5213841c1f8727bd23aa4785b93f1f5..b33755bd686af7db27a23d42849c66b43fbb8fea 100644
--- a/transition_machine/src/Config.cpp
+++ b/transition_machine/src/Config.cpp
@@ -129,7 +129,8 @@ void Config::fillTapesWithInput()
   std::vector<std::string> cols;
   unsigned int usualColsSize = 0;
   auto & ids = getTape("ID");
-  auto & govs = getTape("GOV");
+  bool hasGov = hasTape("GOV");
+  auto & govs = hasGov ? getTape("GOV") : ids;
 
   for (auto & sentence : inputContent)
   {
@@ -183,7 +184,7 @@ void Config::fillTapesWithInput()
       getTape(ProgramParameters::sequenceDelimiterTape).addToHyp("");
     }
 
-    for (int word = sentenceStartIndex; word < ids.refSize(); word++)
+    for (int word = sentenceStartIndex; hasGov && word < ids.refSize(); word++)
     {
       if (split(ids.getRef(word), '-').size() > 1)
         continue;