diff --git a/src/main.cpp b/src/main.cpp
index f54a7856182f1ff8ace4135115c4e3aea7894931..15f267d921445da0a9455334075ba6808d248bb1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -154,6 +154,7 @@ int main(int argc, char *argv[])
     Kokkos::View<double*> gammaj = unknowns.gammaj();
     Kokkos::View<double*> cj = unknowns.cj();
     Kokkos::View<double*> kj = unknowns.kj();
+    Kokkos::View<double*> nuj = unknowns.nuj();
     Kokkos::View<Rd*> uj = unknowns.uj();
     BlockPerfectGas block_eos(rhoj, ej, pj, gammaj, cj);
 
@@ -312,7 +313,7 @@ int main(int argc, char *argv[])
 
       // DIFFUSION PURE
       
-      double dt = 0.4*finite_volumes_diffusion.diffusion_dt(rhoj,kj,cj);
+      double dt = 0.4*finite_volumes_diffusion.diffusion_dt(rhoj,kj,nuj,cj);
       if (t+dt > tmax) {
 	dt = tmax-t;
       }
diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp
index 49f29b277691b84a699a724893689a242792a136..7b0ffa5e5c1d548e73bf410484edc88dbfe30a54 100644
--- a/src/scheme/FiniteVolumesDiffusion.hpp
+++ b/src/scheme/FiniteVolumesDiffusion.hpp
@@ -311,6 +311,7 @@ public:
   KOKKOS_INLINE_FUNCTION
   double diffusion_dt(const Kokkos::View<const double*>& rhoj,
 		      const Kokkos::View<const double*>& kj,
+		      const Kokkos::View<const double*>& nuj,
 		      const Kokkos::View<const double*>& cj) const {
 
     Kokkos::View<double*> dt_j("dt_j", m_mesh.numberOfCells());
@@ -336,15 +337,25 @@ public:
 	}
 	
 	double sum = 0.;
+	double sum1 = 0.;
 	
 	for (int m = 0; m < cell_nb_nodes(j); ++m) {
 	 sum += kj(cell_nodes(j,m));
+	 sum1 += nuj(cell_nodes(j,m));
 	}
 
-	if (sum == 0.) {
-	  dt_j[j] = std::numeric_limits<double>::max(); 
+	if (sum < sum1) {
+	  if (sum == 0.) {
+	    dt_j[j] = std::numeric_limits<double>::max(); 
+	  } else {
+	    dt_j[j]= 0.5*rhoj(j)*Vj(j)*(1./sum)*minVl;
+	  }
 	} else {
-	  dt_j[j]= 0.5*rhoj(j)*Vj(j)*(1./sum)*minVl;
+	  if (sum1 == 0.) {
+	    dt_j[j] = std::numeric_limits<double>::max(); 
+	  } else {
+	    dt_j[j]= 0.5*rhoj(j)*Vj(j)*(1./sum1)*minVl;
+	  }
 	}
 	
       });