diff --git a/src/matrix/tnlMatrix.h b/src/matrix/tnlMatrix.h
index b86db4baa459ba53de75ecedab5114232bd07208..65ad440c4a7d3a658d0e46b390af7c8878164a23 100644
--- a/src/matrix/tnlMatrix.h
+++ b/src/matrix/tnlMatrix.h
@@ -127,7 +127,8 @@ class tnlMatrix : public tnlObject
 
    bool load( const tnlString& fileName );
 
-   tnlMatrix< Real, Device, Index >& operator = ( const tnlMatrix< Real, Device, Index >& matrix );
+   template< typename Real2 >
+   tnlMatrix< Real, Device, Index >& operator = ( const tnlMatrix< Real2, Device, Index >& matrix );
 
    /*!
     * Computes permutation of the rows such that the rows would be
diff --git a/src/schemes/diffusion/tnlLinearDiffusion.h b/src/schemes/diffusion/tnlLinearDiffusion.h
index 0c1a0d00d04f06889c2dbe22c64b39d48218d9b2..cb0b59376cbcd8a4d9900214a686eb9231d96c45 100644
--- a/src/schemes/diffusion/tnlLinearDiffusion.h
+++ b/src/schemes/diffusion/tnlLinearDiffusion.h
@@ -21,6 +21,7 @@
 #include <mesh/tnlGrid.h>
 #include <mesh/tnlIdenticalGridGeometry.h>
 #include <core/tnlHost.h>
+#include <core/tnlSharedVector.h>
 
 template< typename Mesh >
 class tnlLinearDiffusion
diff --git a/src/schemes/euler/fvm/tnlLaxFridrichs.h b/src/schemes/euler/fvm/tnlLaxFridrichs.h
index 8ccd7232fc74081d5d7bb4866099b81b6039b316..70642b94efa7954ef3a6827885c4b2e92ca902d9 100644
--- a/src/schemes/euler/fvm/tnlLaxFridrichs.h
+++ b/src/schemes/euler/fvm/tnlLaxFridrichs.h
@@ -24,7 +24,7 @@
 #include <schemes/gradient/tnlCentralFDMGradient.h>
 
 template< typename MeshType,
-          typename PressureGradient >
+          typename PressureGradient = tnlCentralFDMGradient >
 class tnlLaxFridrichs
 {
 };