diff --git a/src/TNL/CMakeLists.txt b/src/TNL/CMakeLists.txt
index 99362ccf29e48c6451f2f3d6dced9a6d8b2b1225..eb3d871f5084d5c647352dd33f5f21030847a2a8 100644
--- a/src/TNL/CMakeLists.txt
+++ b/src/TNL/CMakeLists.txt
@@ -39,7 +39,6 @@ set( headers
      StaticVectorFor.h )
 
 set( common_SOURCES
-     FileName.cpp
      String.cpp )
 
 set( tnl_SOURCES ${tnl_config_SOURCES}
diff --git a/src/TNL/FileName.cpp b/src/TNL/FileName.cpp
deleted file mode 100644
index ecbe0a664bb30c254067c20619e3b6370f83d3b5..0000000000000000000000000000000000000000
--- a/src/TNL/FileName.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/***************************************************************************
-                          FileName.cpp  -  description
-                             -------------------
-    begin                : 2007/06/18
-    copyright            : (C) 2007 by Tomas Oberhuber
-    email                : tomas.oberhuber@fjfi.cvut.cz
- ***************************************************************************/
-
-/* See Copyright Notice in tnl/Copyright */
-
-#include <sstream>
-#include <iomanip>
-#include <cstring>
-#include <cstdlib>
-#include <TNL/FileName.h>
-#include <TNL/String.h>
-#include <TNL/Math.h>
-
-namespace TNL {
-   
-FileName::FileName()
-: index( 0 ), digitsCount( 5 )
-{
-}
-
-FileName::FileName( const String& fileNameBase )
-: fileNameBase( fileNameBase ),
-   index( 0 ),
-   digitsCount( 5 )
-{
-}
-
-FileName::FileName( const String& fileNameBase, 
-                    const String& extension )
-: fileNameBase( fileNameBase ),
-   extension( extension ),
-   index( 0 ),
-   digitsCount( 5 )
-{
-}
-      
-void FileName::setFileNameBase( const String& fileNameBase )
-{
-   this->fileNameBase = fileNameBase;
-}
-      
-void FileName::setExtension( const String& extension )
-{
-   this->extension = extension;
-}
-    
-void FileName::setIndex( const int index )
-{
-   this->index = index;
-}
-    
-void FileName::setDigitsCount( const int digitsCount )
-{
-   this->digitsCount = digitsCount;
-}
-
-void FileName::setDistributedSystemNodeId( int nodeId )
-{
-   this->distributedSystemNodeId = "-";
-   this->distributedSystemNodeId += convertToString( nodeId );
-}
-
-String FileName::getFileName()
-{
-   std::stringstream stream;
-   stream << this->fileNameBase 
-          << std::setw( this->digitsCount )
-          << std::setfill( '0' )
-          << this->index
-          << this->distributedSystemNodeId
-          << "." << this->extension;
-   return String( stream.str().data() );
-}
-
-String getFileExtension( const String fileName )
-{
-   int size = fileName. getLength();
-   int i = 1;
-   while( fileName. getString()[ size - i ] != '.' && size > i  ) i ++ ;
-   String result;
-   result.setString( fileName. getString(), size - i + 1 );
-   return result;
-}
-
-void removeFileExtension( String& fileName )
-{
-   int size = fileName. getLength();
-   int i = 1;
-   while( fileName. getString()[ size - i ] != '.' && size > i  ) i ++ ;
-   fileName. setString( fileName. getString(), 0, i );
-}
-
-} // namespace TNL
diff --git a/src/TNL/FileName.h b/src/TNL/FileName.h
index 3dae01c5407153357d91a45e74b73382cc3559e0..a36e3db3fc6da84df9403dde905f74f17a0cf49a 100644
--- a/src/TNL/FileName.h
+++ b/src/TNL/FileName.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#pragma once 
+#pragma once
 
 #include <TNL/String.h>
 
@@ -70,13 +70,12 @@ class FileName
       /// Creates particular file name using \e fileNameBase, \e digitsCount,
       /// \e index and \e extension.
       String getFileName();
-      
+
    protected:
    
       String fileNameBase, extension, distributedSystemNodeId;
       
       int index, digitsCount;
-   
 };
 
 } // namespace TNL
diff --git a/src/TNL/FileName.hpp b/src/TNL/FileName.hpp
index 4f1628df54c808322e61d30ad7c2210c67ee507d..325335b6d885b313144e5eb23d20101ef3cccf17 100644
--- a/src/TNL/FileName.hpp
+++ b/src/TNL/FileName.hpp
@@ -8,10 +8,64 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
+#pragma once
+
+#include <sstream>
+#include <iomanip>
+
 #include <TNL/FileName.h>
+#include <TNL/String.h>
+#include <TNL/Math.h>
 
 namespace TNL {
 
+inline FileName::FileName()
+: index( 0 ), digitsCount( 5 )
+{
+}
+
+inline FileName::FileName( const String& fileNameBase )
+: fileNameBase( fileNameBase ),
+  index( 0 ),
+  digitsCount( 5 )
+{
+}
+
+inline FileName::FileName( const String& fileNameBase,
+                           const String& extension )
+: fileNameBase( fileNameBase ),
+  extension( extension ),
+  index( 0 ),
+  digitsCount( 5 )
+{
+}
+
+inline void FileName::setFileNameBase( const String& fileNameBase )
+{
+   this->fileNameBase = fileNameBase;
+}
+
+inline void FileName::setExtension( const String& extension )
+{
+   this->extension = extension;
+}
+
+inline void FileName::setIndex( const int index )
+{
+   this->index = index;
+}
+
+inline void FileName::setDigitsCount( const int digitsCount )
+{
+   this->digitsCount = digitsCount;
+}
+
+inline void FileName::setDistributedSystemNodeId( int nodeId )
+{
+   this->distributedSystemNodeId = "-";
+   this->distributedSystemNodeId += convertToString( nodeId );
+}
+
 template< typename Coordinates >
 void
 FileName::
@@ -26,4 +80,34 @@ setDistributedSystemNodeId( const Coordinates& nodeId )
    }
 }
 
+inline String FileName::getFileName()
+{
+   std::stringstream stream;
+   stream << this->fileNameBase
+          << std::setw( this->digitsCount )
+          << std::setfill( '0' )
+          << this->index
+          << this->distributedSystemNodeId
+          << "." << this->extension;
+   return String( stream.str().data() );
+}
+
+inline String getFileExtension( const String fileName )
+{
+   int size = fileName. getLength();
+   int i = 1;
+   while( fileName. getString()[ size - i ] != '.' && size > i  ) i ++ ;
+   String result;
+   result.setString( fileName. getString(), size - i + 1 );
+   return result;
+}
+
+inline void removeFileExtension( String& fileName )
+{
+   int size = fileName. getLength();
+   int i = 1;
+   while( fileName. getString()[ size - i ] != '.' && size > i  ) i ++ ;
+   fileName. setString( fileName. getString(), 0, i );
+}
+
 } // namespace TNL