diff --git a/decoder/src/Decoder.cpp b/decoder/src/Decoder.cpp
index d1bb7063b8d40b3a654b0b522e42abeb86acaa06..f27bd8f9209703b1aa7e72670032b0d13a249754 100644
--- a/decoder/src/Decoder.cpp
+++ b/decoder/src/Decoder.cpp
@@ -215,7 +215,7 @@ void Decoder::decodeNoBeam()
 
   while (!config.isFinal())
   {
-    config.setCurrentStateName(tm.getCurrentState());
+    config.setCurrentStateName(tm.getCurrentClassifier()->name);
     Dict::currentClassifierName = tm.getCurrentClassifier()->name;
 
     auto weightedActions = tm.getCurrentClassifier()->weightActions(config);
@@ -377,7 +377,7 @@ void Decoder::decodeBeam()
     bool mustContinue = false;
     for (auto & node : beam)
     {
-      node->config.setCurrentStateName(node->tm.getCurrentState());
+      node->config.setCurrentStateName(node->tm.getCurrentClassifier()->name);
       Dict::currentClassifierName = node->tm.getCurrentClassifier()->name;
 
       node->weightedActions = node->tm.getCurrentClassifier()->weightActions(node->config);