diff --git a/include/maskfld.cpp b/include/maskfld.cpp
index e5516aa32..602bbeea3 100755
--- a/include/maskfld.cpp
+++ b/include/maskfld.cpp
@@ -1,4 +1,4 @@
-//      $Id: maskfld.cpp,v 1.80 1995-02-15 08:53:41 guy Exp $
+//      $Id: maskfld.cpp,v 1.81 1995-02-17 09:16:51 villa Exp $
 #include <xvt.h>
 
 #include <applicat.h>
@@ -2592,9 +2592,7 @@ bool TReal_field::on_key(KEY key)
       if (_flags.firm)
       {                         
         const long f = atol(n);
-        if (!prefhndl->exist(f))
-          return error_box("Ditta non utilizzabile in contabilita'");
-        else
+        if (prefhndl->exist(f))
           main_app().set_firm(f);
       }  
     }
diff --git a/include/printapp.cpp b/include/printapp.cpp
index d49175b3f..c1fa3b9cc 100755
--- a/include/printapp.cpp
+++ b/include/printapp.cpp
@@ -1,4 +1,4 @@
-//      $Id: printapp.cpp,v 1.16 1994-12-02 10:48:30 villa Exp $      
+//      $Id: printapp.cpp,v 1.17 1995-02-17 09:16:57 villa Exp $      
 #include <ctype.h>
 #include <stdarg.h>
 
@@ -781,11 +781,13 @@ void TPrint_application::set_translation (int lognum, const char *field,
 
 void TPrint_application::print()
 {
+  _cancelled = FALSE;
+
   // open printer if needed
   if (!(printer().isopen ()))
     if (!printer().open ())
-      return;
-
+      return;  
+  
   // only external apps can change it
   _repeat_print = FALSE;
   int ncopies = printer().n_copies();
@@ -855,7 +857,8 @@ void TPrint_application::print()
       printer().resetheader();
       printer().resetfooter();
     }
-  postclose_print ();
+  postclose_print ();  
+  return;
 }
 
 bool TPrint_application::print_tree (link_item * head)
@@ -910,7 +913,7 @@ bool TPrint_application::print_one (int file)
   int i = 0;
 
   if ((_prind && _prind->iscancelled ()) || printer ().frozen ())
-    return FALSE;
+    if (_cancelled = cancel_hook()) return FALSE;
 
   if (!_print_defined)
     return TRUE;
diff --git a/include/printapp.h b/include/printapp.h
index 9be6a32c0..240223b40 100755
--- a/include/printapp.h
+++ b/include/printapp.h
@@ -74,7 +74,8 @@ class TPrint_application : public TApplication
   MENU_TAG    _last_choice;
   int         _ncopies;
   bool        _repeat_print;
-
+  bool        _cancelled;
+  
   // set the printer
   void  set_printer() { printer().set(); }
   // print a single record; does not advance cursor
@@ -467,10 +468,13 @@ public:
   void        merge_export_file(const char* file, bool header = TRUE, bool direct = FALSE);
 
   
-  void set_n_copies(int n) { _ncopies = n;         }
-  int  get_n_copies()      { return _ncopies;      }
+  void set_n_copies(int n)  { _ncopies = n;         }
+  int  get_n_copies()       const { return _ncopies;      }
   void repeat_print()      { _repeat_print = TRUE; }
   
+  bool is_cancelled() const { return _cancelled;    }
+  
+  
   TPrint_application();
   virtual ~TPrint_application();
 };