diff --git a/src/TNL/Meshes/BuildConfigTags.h b/src/TNL/Meshes/BuildConfigTags.h
index 73b1e8ae1e3c5f801a4fa2505ee10eb249f2c1b0..573c3393ce7a75e7124968c34e35f8fc7f324efd 100644
--- a/src/TNL/Meshes/BuildConfigTags.h
+++ b/src/TNL/Meshes/BuildConfigTags.h
@@ -65,10 +65,12 @@ struct GridTag< ConfigTag, Grid< Dimension, Real, Device, Index > >
  * Configuration for unstructured meshes
  */
 
-// Meshes are enabled only on host.
-// TODO: enable Devices::Cuda by default when implemented
+// Meshes are enabled on all available devices by default.
 template< typename ConfigTag, typename Device > struct MeshDeviceTag { enum { enabled = false }; };
 template< typename ConfigTag > struct MeshDeviceTag< ConfigTag, Devices::Host > { enum { enabled = true }; };
+#ifdef HAVE_CUDA
+template< typename ConfigTag > struct MeshDeviceTag< ConfigTag, Devices::Cuda > { enum { enabled = true }; };
+#endif
 
 // All available cell topologies are disabled by default.
 template< typename ConfigTag, typename CellTopology > struct MeshCellTopologyTag { enum { enabled = false }; };
diff --git a/src/TNL/Solvers/PDE/MeshDependentTimeSteps.h b/src/TNL/Solvers/PDE/MeshDependentTimeSteps.h
index d7031301b638bbbe187ea433264466cb62616861..143c4b7f02755057238ca878c52b75ae0a57a32e 100644
--- a/src/TNL/Solvers/PDE/MeshDependentTimeSteps.h
+++ b/src/TNL/Solvers/PDE/MeshDependentTimeSteps.h
@@ -57,8 +57,9 @@ protected:
 };
 
 template< typename MeshConfig,
+          typename Device,
           typename Real >
-class MeshDependentTimeSteps< TNL::Meshes::Mesh< MeshConfig >, Real >
+class MeshDependentTimeSteps< TNL::Meshes::Mesh< MeshConfig, Device >, Real >
 {
 public:
    using MeshType = TNL::Meshes::Mesh< MeshConfig >;