diff --git a/trainer/src/MacaonTrain.cpp b/trainer/src/MacaonTrain.cpp
index 32468ad8a15d3a7e36c255dd8da6c86525b47186..efcab7922027de296531455e131686414582bd0a 100644
--- a/trainer/src/MacaonTrain.cpp
+++ b/trainer/src/MacaonTrain.cpp
@@ -82,6 +82,7 @@ int MacaonTrain::main()
   auto nbEpoch = variables["nbEpochs"].as<int>();
   auto batchSize = variables["batchSize"].as<int>();
   auto dynamicOracleInterval = variables["dynamicOracleInterval"].as<int>();
+  bool saveEverything = dynamicOracleInterval > 0;
   auto rarityThreshold = variables["rarityThreshold"].as<float>();
   bool debug = variables.count("debug") == 0 ? false : true;
   bool printAdvancement = !debug && variables.count("silent") == 0 ? true : false;
@@ -199,8 +200,12 @@ int MacaonTrain::main()
       devScoresStr.pop_back();
     devScoreMean /= devScores.size();
     bool saved = devScoreMean >= bestDevScore;
+
     if (!computeDevScore)
       saved = devScoreMean <= bestDevScore;
+
+    if (saveEverything)
+      saved = true;
     if (saved)
     {
       bestDevScore = devScoreMean;