diff --git a/src/TNL/Object_impl.h b/src/TNL/Object_impl.h
index 70415f8e81d78c5bd326624961573dcb5cb8a5bd..f0b1a8545ac0769e270b6804463f7d2af1aa64ac 100644
--- a/src/TNL/Object_impl.h
+++ b/src/TNL/Object_impl.h
@@ -103,11 +103,7 @@ inline bool Object :: boundLoad( const String& fileName )
 inline bool getObjectType( File& file, String& type )
 {
    char mn[ 10 ];
-   if( ! file.read( mn, strlen( magic_number ) ) )
-   {
-      std::cerr << "Unable to read file " << file.getFileName() << " ... " << std::endl;
-      return false;
-   }
+   file.read( mn, strlen( magic_number ) );
    if( strncmp( mn, magic_number, 5 ) != 0 )
    {
        std::cout << "Not a TNL file (wrong magic number)." << std::endl;
diff --git a/src/Tools/tnl-diff.h b/src/Tools/tnl-diff.h
index 06344f5968bcc144b096337e8d55850c766ab8b9..9623aa34bc1df8d5704746e64427a5830d208a88 100644
--- a/src/Tools/tnl-diff.h
+++ b/src/Tools/tnl-diff.h
@@ -623,9 +623,13 @@ bool processFiles( const Config::ParameterContainer& parameters )
       }
 
    String objectType;
-   if( ! getObjectType( inputFiles[ 0 ], objectType ) ) {
-       std::cerr << "unknown object ... SKIPPING!" << std::endl;
-       return false;
+   try
+   {
+      getObjectType( inputFiles[ 0 ], objectType );
+   }
+   catch( std::ios_base::failure exception )
+   {
+      std::cerr << "Cannot open file " << inputFiles[ 0 ] << std::endl;
    }
 
    if( verbose )