diff --git a/trainer/src/Trainer.cpp b/trainer/src/Trainer.cpp
index 16a436271923c5a091355144ffe05375edf31123..ca8ef4588ba78e0fc47e6dadaf298462e06cceeb 100644
--- a/trainer/src/Trainer.cpp
+++ b/trainer/src/Trainer.cpp
@@ -233,6 +233,9 @@ void Trainer::train()
         if (pAction == oAction)
           pActionIsZeroCost = true;
 
+        if (oAction.empty())
+          oAction = tm.getCurrentClassifier()->getDefaultAction();
+
         if (oAction.empty())
         {
           if (trainConfig.endOfTapes())
@@ -241,6 +244,7 @@ void Trainer::train()
               trainConfig.stackPop();
             break;
           }
+
           fprintf(stderr, "ERROR (%s) : Unable to find any zero cost action. Aborting.\n", ERRINFO);
           fprintf(stderr, "State : %s\n", tm.getCurrentState().c_str());
           trainConfig.printForDebug(stderr);
diff --git a/transition_machine/include/Classifier.hpp b/transition_machine/include/Classifier.hpp
index 656d2899222df23b32216d7a6a13fb72c26bbfac..338325e7af07ebde1b3fc7c80ac94ddf26a76b7f 100644
--- a/transition_machine/include/Classifier.hpp
+++ b/transition_machine/include/Classifier.hpp
@@ -77,6 +77,10 @@ class Classifier
 
   public :
 
+  /// @brief If the ActionScript has a default action, get it.
+  ///
+  /// @return The default action name, or an empty string.
+  std::string getDefaultAction() const;
   /// @brief Return how many errors will an action introduce.
   ///
   /// @param config The current config.
diff --git a/transition_machine/src/Classifier.cpp b/transition_machine/src/Classifier.cpp
index a1ecb645161506b6ae3a2d0cfc6b5487551dd985..c1c99988f2bfc9e9633bfab7e7a086fbc5d0fe51 100644
--- a/transition_machine/src/Classifier.cpp
+++ b/transition_machine/src/Classifier.cpp
@@ -260,6 +260,14 @@ std::vector<std::string> Classifier::getZeroCostActions(Config & config)
   return result;
 }
 
+std::string Classifier::getDefaultAction() const
+{
+  if (as->hasDefaultAction)
+    return as->getActionName(0);
+
+  return std::string();
+}
+
 float Classifier::trainOnExample(Config & config, int gold)
 {
   auto fd = fm->getFeatureDescription(config);