diff --git a/transition_machine/include/Config.hpp b/transition_machine/include/Config.hpp
index a1e4a6cd5ff89ba3fbd4a5f584217b7cecfc0583..939bfff5eb92bed933464578652e2b40a00f3bda 100644
--- a/transition_machine/include/Config.hpp
+++ b/transition_machine/include/Config.hpp
@@ -134,7 +134,7 @@ class Config
 
   private :
 
-  const unsigned int HISTORY_SIZE = 100;
+  const unsigned int HISTORY_SIZE = 1000;
   /// @brief The name of the current state of the TransitionMachine.
   std::string currentStateName;
   /// @brief For each state of the TransitionMachine, an history of the Action that have been applied to this Config.
diff --git a/transition_machine/src/Action.cpp b/transition_machine/src/Action.cpp
index 32dcce80e4450105a4224e0105c9a64334f1235c..fabde9db99eb26a463ff5b263a467ea940aa6abc 100644
--- a/transition_machine/src/Action.cpp
+++ b/transition_machine/src/Action.cpp
@@ -32,7 +32,13 @@ void Action::undo(Config & config)
   for(int i = sequence.size()-1; i >= 0; i--)
     sequence[i].undo(config, sequence[i]);
 
+  if (ProgramParameters::debug)
+    fprintf(stderr, "Undoing action <%s><%s>, state history size = %d past actions size = %d...", stateName.c_str(), name.c_str(), config.getStateHistory(stateName).size(), config.pastActions.size());
+
   config.getStateHistory(stateName).pop();
+
+  if (ProgramParameters::debug)
+    fprintf(stderr, "done\n");
 }
 
 void Action::undoOnlyStack(Config & config)
@@ -49,8 +55,12 @@ void Action::undoOnlyStack(Config & config)
   }
 
   if (ProgramParameters::debug)
-    fprintf(stderr, "Undoing action <%s>, history size = %d\n", name.c_str(), config.getStateHistory(stateName).size());
+    fprintf(stderr, "Undoing only stack action <%s><%s>, state history size = %d past actions size = %d...", stateName.c_str(), name.c_str(), config.getStateHistory(stateName).size(), config.pastActions.size());
+
   config.getStateHistory(stateName).pop();
+
+  if (ProgramParameters::debug)
+    fprintf(stderr, "done\n");
 }
 
 Action::Action(const std::string & name)
diff --git a/transition_machine/src/ActionBank.cpp b/transition_machine/src/ActionBank.cpp
index 9306c79ff36e3cd5bf1845066579d380e5fcbd06..7a304b6fbcb19122644d3ec493ea135170327107 100644
--- a/transition_machine/src/ActionBank.cpp
+++ b/transition_machine/src/ActionBank.cpp
@@ -521,8 +521,7 @@ std::vector<Action::BasicAction> ActionBank::str2sequence(const std::string & na
             while (true)
             {
               auto a = c.pastActions.pop();
-              if (ProgramParameters::debug)
-                fprintf(stderr, "Undoing... <%s><%s>\n", a.first.c_str(), a.second.name.c_str());
+
               a.second.undoOnlyStack(c);
 
               if (a.first == classifierName)
@@ -543,8 +542,6 @@ std::vector<Action::BasicAction> ActionBank::str2sequence(const std::string & na
                 exit(1);
               }
               auto a = c.pastActions.pop();
-              if (ProgramParameters::debug)
-                fprintf(stderr, "Undoing... <%s><%s>\n", a.first.c_str(), a.second.name.c_str());
 
               if (a.first == classifierName)
               {
diff --git a/transition_machine/src/Config.cpp b/transition_machine/src/Config.cpp
index 166a6a9ef102e4b53d2590657b0cff56bd635c9d..ebd87de9a6793fe33193e3a4e07f42a50f2f061f 100644
--- a/transition_machine/src/Config.cpp
+++ b/transition_machine/src/Config.cpp
@@ -5,7 +5,7 @@
 #include "Action.hpp"
 #include "ProgramOutput.hpp"
 
-Config::Config(BD & bd, const std::string inputFilename) : bd(bd), hashHistory(90), pastActions(100)
+Config::Config(BD & bd, const std::string inputFilename) : bd(bd), hashHistory(HISTORY_SIZE), pastActions(HISTORY_SIZE)
 {
   this->outputFile = nullptr;
   this->stackHistory = -1;
diff --git a/transition_machine/src/FeatureBank.cpp b/transition_machine/src/FeatureBank.cpp
index bf8f67f9629567c5404731ada458d60b41b2a968..47d9f7a6624fcee6a498061aadd78142168603db 100644
--- a/transition_machine/src/FeatureBank.cpp
+++ b/transition_machine/src/FeatureBank.cpp
@@ -22,9 +22,9 @@ std::function<FeatureModel::FeatureValue(Config &)> FeatureBank::str2func(const
     std::string object(parts[0]);
     int from = std::stoi(parts[1]);
     int to = std::stoi(parts[2]);
-    if (from > to || from > 0 || to < 0)
+    if (from > to)
     {
-      fprintf(stderr, "ERROR (%s) : invalid feature \'%s\'. Aborting.\n", ERRINFO, s.c_str());
+      fprintf(stderr, "ERROR (%s) : invalid feature \'%s\' (from=%d to=%d). Aborting.\n", ERRINFO, s.c_str(), from, to);
       exit(1);
     }
     std::vector<std::string> exceptions;