diff --git a/trainer/src/Trainer.cpp b/trainer/src/Trainer.cpp
index 9223026b79c5a382aeb4bf3c9c230679ab4f900a..1fcbe952b6245f1b2d8ef414e44d412ba4a24e46 100644
--- a/trainer/src/Trainer.cpp
+++ b/trainer/src/Trainer.cpp
@@ -73,7 +73,7 @@ void Trainer::computeScoreOnDev()
           if (pAction.empty())
             pAction = it.second.second;
 
-           if (tm.getCurrentClassifier()->getActionCost(trainConfig, it.second.second) == 0)
+           if (tm.getCurrentClassifier()->getActionCost(*devConfig, it.second.second) == 0)
            {
              oAction = it.second.second;
              break;
@@ -83,7 +83,7 @@ void Trainer::computeScoreOnDev()
       bool pActionIsZeroCost = tm.getCurrentClassifier()->getActionCost(*devConfig, pAction) == 0;
 
       TI.addDevExample(tm.getCurrentClassifier()->name);
-      if (pActionIsZeroCost)
+      if (((!ProgramParameters::devEvalOnGold) && pActionIsZeroCost) || (pAction == oAction))
         TI.addDevSuccess(tm.getCurrentClassifier()->name);
 
       std::string actionName;