diff --git a/examples/main.c b/examples/main.c
index d6a8947ece7191d814f52ab8960d2e44dd27cd21..edc11bf29c7901654263c90d577a971e8c10f033 100644
--- a/examples/main.c
+++ b/examples/main.c
@@ -171,7 +171,7 @@ int main(int argc, char *argv[]) {
       case 'd':
         if (sscanf(optarg, "%f", &dt_min) != 1)
           error("Error parsing minimal timestep.");
-        if (myrank == 0) message("dt_min set to %e.", dt_max);
+        if (myrank == 0) message("dt_min set to %e.", dt_min);
         fflush(stdout);
         break;
       case 'e':
@@ -323,10 +323,6 @@ int main(int argc, char *argv[]) {
             aFactor(&us, UNIT_CONV_ENTROPY), hFactor(&us, UNIT_CONV_ENTROPY));
   }
 
-  /* Check we have sensible time step bounds */
-  if (dt_min > dt_max)
-    error("Minimal time step size must be large than maximal time step size ");
-
   /* Check whether an IC file has been provided */
   if (strcmp(ICfileName, "") == 0)
     error("An IC file name must be provided via the option -f");
diff --git a/src/engine.c b/src/engine.c
index a7c29f1211c730857518aa0c7e96f0df742d5d22..e4fd57a7b38eb8b0991ff667ceb62c08310c306c 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -1936,6 +1936,18 @@ void engine_init(struct engine *e, struct space *s, float dt, int nr_threads,
   /* Print information about the hydro scheme */
   if (e->nodeID == 0) message("Hydrodynamic scheme: %s", SPH_IMPLEMENTATION);
 
+  /* Check we have sensible time bounds */
+  if (timeBegin >= timeEnd)
+    error(
+        "Final simulation time (t_end = %e) must be larger than the start time "
+        "(t_beg = %e)",
+        timeEnd, timeBegin);
+
+  /* Check we have sensible time step bounds */
+  if (e->dt_min > e->dt_max)
+    error(
+        "Minimal time step size must be smaller than maximal time step size ");
+
   /* Deal with timestep */
   e->timeBase = (timeEnd - timeBegin) / max_nr_timesteps;
   e->ti_current = 0;