diff --git a/common/src/Dict.cpp b/common/src/Dict.cpp
index d09f14996dcf35f89c1c83cbb3905c3b3bb1db99..c451ecd15160d1358e43f6a1b23dbd9de3e0b31f 100644
--- a/common/src/Dict.cpp
+++ b/common/src/Dict.cpp
@@ -63,13 +63,17 @@ void Dict::insert(const std::string & element)
 
 int Dict::getIndexOrInsert(const std::string & element)
 {
-  if (state == State::Open)
-    insert(element);
-
   const auto & found = elementsToIndexes.find(element);
 
   if (found == elementsToIndexes.end())
+  {
+    if (state == State::Open)
+    {
+      insert(element);
+      return elementsToIndexes[element];
+    }
     return elementsToIndexes[unknownValueStr];
+  }
 
   return found->second;
 }