diff --git a/decoder/src/Decoder.cpp b/decoder/src/Decoder.cpp
index a9e153d26c2083f2afbbeebeda5be8df97795c0e..934252b718bc813b638f1dbbc8a363399b45b111 100644
--- a/decoder/src/Decoder.cpp
+++ b/decoder/src/Decoder.cpp
@@ -175,6 +175,7 @@ void applyActionAndTakeTransition(TransitionMachine & tm, const std::string & ac
     Action * action = tm.getCurrentClassifier()->getAction(actionName);
     TransitionMachine::Transition * transition = tm.getTransition(actionName);
     action->setInfos(transition->headMvt, tm.getCurrentState());
+    config.addToActionsHistory(config.getCurrentStateName(), actionName, tm.getCurrentClassifier()->getActionCost(config, actionName));
     action->apply(config);
     tm.takeTransition(transition);
 }
diff --git a/trainer/src/Trainer.cpp b/trainer/src/Trainer.cpp
index 2bf245e0264affbcab249c036edf56c238720fa5..32b8cccbd94ce2e76133904640413117037a0b68 100644
--- a/trainer/src/Trainer.cpp
+++ b/trainer/src/Trainer.cpp
@@ -135,6 +135,8 @@ void Trainer::computeScoreOnDev()
 
       TransitionMachine::Transition * transition = tm.getTransition(actionName);
       action->setInfos(transition->headMvt, tm.getCurrentState());
+      devConfig->addToActionsHistory(devConfig->getCurrentStateName(), actionName, tm.getCurrentClassifier()->getActionCost(*devConfig, actionName));
+
       action->apply(*devConfig);
       tm.takeTransition(transition);
 
diff --git a/transition_machine/include/Config.hpp b/transition_machine/include/Config.hpp
index 5b99d95b71e25b75addbd7051862d1d6feb4d30e..7d1e71903b0ed6db6f0ba75fc7e8e8245ff50fed 100644
--- a/transition_machine/include/Config.hpp
+++ b/transition_machine/include/Config.hpp
@@ -348,7 +348,7 @@ class Config
   ///
   /// @param index Index of the column to print.
   void printColumnInfos(unsigned int index);
-  void addToActionsHistory(std::string & state, std::string & action, int cost);
+  void addToActionsHistory(std::string & state, const std::string & action, int cost);
   std::vector< std::pair<std::string, int> > & getActionsHistory(std::string & state);
 };
 
diff --git a/transition_machine/src/Config.cpp b/transition_machine/src/Config.cpp
index a82342d71f9f5931e8e7aab5841bacddbf40309d..e3f13c4d906cd0eb02cb623422e9fd2aa7df641d 100644
--- a/transition_machine/src/Config.cpp
+++ b/transition_machine/src/Config.cpp
@@ -615,7 +615,7 @@ void Config::printColumnInfos(unsigned int index)
   fprintf(stderr, "\n");
 }
 
-void Config::addToActionsHistory(std::string & state, std::string & action, int cost)
+void Config::addToActionsHistory(std::string & state, const std::string & action, int cost)
 {
   actionsHistory[state+"_"+std::to_string(head)].emplace_back(action, cost);
 }