diff --git a/include/maskfld.cpp b/include/maskfld.cpp
index 0ad41354a..93db00973 100755
--- a/include/maskfld.cpp
+++ b/include/maskfld.cpp
@@ -444,15 +444,15 @@ const TString& TMask_field::get() const
 
 // @doc EXTERNAL
 
-// @mfunc Permette di spedire il check
+// @mfunc Verifica se il campo deve essere sottoposto a check
 //
-// @rdesc Ritorna il risultato del check:
+// @rdesc Ritorna il risultato:
 //
-// @flag TRUE | Se il check ha dato esito positivo
-// @flag FALSE | Se il check ha dato esito negativo
+// @flag TRUE | Se il campo e' da sottoporre a check
+// @flag FALSE | Se il campo non e' da sottoporre check
 bool TMask_field::to_check(
   KEY k,               // @parm Tasto da passare al campo come simulazione di inizio controllo
-  bool checkrun) const // @parm Permette di testare sanche e la maschera e' in esecuzione
+  bool checkrun) const // @parm Permette di ritornare TRUE se la maschera e' in start_run() mode
 {   
   bool yes = (k == K_TAB && focusdirty()) || (k == K_ENTER && dirty());
   
@@ -2698,7 +2698,7 @@ bool TEdit_field::on_hit()
   const int vf = validate_func();
   if (vf >= 0)
   {               
-    if (vf == AUTOEXIT_FUNC || vf == NUMCALC_FUNC || vf == STRCALC_FUNC)
+    if (vf == AUTOEXIT_FUNC || vf == NUMCALC_FUNC || vf == STRCALC_FUNC || vf == 21)
     {
       const bool ok = validate(K_TAB);     // Check validation expression
       if (!ok) return FALSE;
@@ -2863,20 +2863,22 @@ bool TEdit_field::on_key(KEY key)
       if (k == K_ENTER)
       {     
         set_dirty();
-        on_hit();  
-        TMask & m = mask();
-  
-        if (m.is_running())   
-        {                     
-          set_focusdirty(FALSE);       // Evita doppia esecuzione handlers!
-          if (m.query_mode() && in_key(0))
-          {
-            test_key_complete();
+        if (on_hit())
+        {
+          TMask & m = mask();
+    
+          if (m.is_running())   
+          {                     
+            set_focusdirty(FALSE);       // Evita doppia esecuzione handlers!
+            if (m.query_mode() && in_key(0))
+            {
+              test_key_complete();
+            }
+  //          else
+  //          {
+              send_key(K_TAB, 0);          // Passa al campo successivo
+  //          }  
           }
-//          else
-//          {
-            send_key(K_TAB, 0);          // Passa al campo successivo
-//          }  
         }
         return TRUE;
       }