diff --git a/src/timestep.h b/src/timestep.h
index efc1b09aefef21add64ec1331fabd88e95fd0712..309a0b1407d3ee634711e07fa9b9f0a04a25ba1c 100644
--- a/src/timestep.h
+++ b/src/timestep.h
@@ -83,7 +83,9 @@ __attribute__((always_inline)) INLINE static integertime_t get_gpart_timestep(
 
   /* Limit timestep within the allowed range */
   new_dt = min(new_dt, e->dt_max);
-  new_dt = max(new_dt, e->dt_min);
+  if (new_dt < e->dt_min)
+    error("gpart (id=%lld) wants a time-step (%e) below dt_min (%e)",
+          gp->id_or_neg_offset, new_dt, e->dt_min);
 
   /* Convert to integer time */
   const integertime_t new_dti = make_integer_timestep(
@@ -139,7 +141,9 @@ __attribute__((always_inline)) INLINE static integertime_t get_part_timestep(
 
   /* Limit timestep within the allowed range */
   new_dt = min(new_dt, e->dt_max);
-  new_dt = max(new_dt, e->dt_min);
+  if (new_dt < e->dt_min)
+    error("part (id=%lld) wants a time-step (%e) below dt_min (%e)", p->id,
+          new_dt, e->dt_min);
 
   /* Convert to integer time */
   const integertime_t new_dti = make_integer_timestep(
@@ -170,7 +174,9 @@ __attribute__((always_inline)) INLINE static integertime_t get_spart_timestep(
 
   /* Limit timestep within the allowed range */
   new_dt = min(new_dt, e->dt_max);
-  new_dt = max(new_dt, e->dt_min);
+  if (new_dt < e->dt_min)
+    error("spart (id=%lld) wants a time-step (%e) below dt_min (%e)", sp->id,
+          new_dt, e->dt_min);
 
   /* Convert to integer time */
   const integertime_t new_dti = make_integer_timestep(