diff --git a/src/engine.c b/src/engine.c
index 174ce938100c50a9818334af7eee2e4fcb832922..b5035598e4840a96149acffc217c7c78eb1d53f1 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2166,6 +2166,10 @@ void engine_init(struct engine *e, struct space *s, float dt, int nr_threads,
   /* Print policy */
   engine_policy(e);
 
+  /* Deal with timestep */
+  if(e->policy & engine_policy_fixdt)
+    e->dt_min = e->dt_max;
+  
 /* Construct types for MPI communications */
 #ifdef WITH_MPI
   part_create_mpi_type(&e->part_mpi_type);
diff --git a/src/runner.c b/src/runner.c
index 4440c3ac7d0ac7ffc3436947ab445073cd788629..b4b25586de2403ebe5302c2bbabaaac5b9c1b334 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -856,7 +856,7 @@ void runner_dokick(struct runner *r, struct cell *c, int timer) {
         current_dt = 0.0f;
   float t_start, t_end, t_end_min = FLT_MAX, t_end_max = 0., dt;
   float dt_timeline;
-  float h_max, dx_max;//, dt_min, dt_max;
+  float h_max, dx_max;
   double ekin = 0.0, epot = 0.0;
   float mom[3] = {0.0f, 0.0f, 0.0f}, ang[3] = {0.0f, 0.0f, 0.0f};
   float m, x[3], v_full[3];
@@ -869,8 +869,6 @@ void runner_dokick(struct runner *r, struct cell *c, int timer) {
   if (!c->split) {
 
     /* Init the min/max counters. */
-    //dt_min = FLT_MAX;
-    //dt_max = 0.0f;
     h_max = 0.0f;
     dx_max = 0.0f;
 
@@ -901,18 +899,18 @@ void runner_dokick(struct runner *r, struct cell *c, int timer) {
 
         /* Limit timestep increase */
         if (current_dt > 0.0f) new_dt = fminf(new_dt, 2.0f * current_dt);
-
+	
         /* Limit timestep within the allowed range */
         new_dt = fminf(new_dt, global_dt_max);
         new_dt = fmaxf(new_dt, global_dt_min);
-
+	
         /* Put this timestep on the time line */
         dt_timeline = dt_max_timeline;
         while (new_dt < dt_timeline) dt_timeline /= 2.;
 
         /* Now we have a time step, proceed with the kick */
         new_dt = dt_timeline;
-
+	
         /* Compute the time step for this kick */
         t_start = 0.5f * (p->t_begin + p->t_end);
         t_end = p->t_end + 0.5f * new_dt;
@@ -967,8 +965,6 @@ void runner_dokick(struct runner *r, struct cell *c, int timer) {
   else {
 
     /* Init everything. */
-    //dt_min = FLT_MAX;
-    //dt_max = 0.0f;
     h_max = 0.0f;
     dx_max = 0.0f;
     updated = 0;
@@ -1017,13 +1013,6 @@ void runner_dokick(struct runner *r, struct cell *c, int timer) {
   c->t_end_min = t_end_min;
   c->t_end_max = t_end_max;
 
-  // assert(t_end_min > 0.);
-
-  if (t_end_min == 0.) {
-    message("oO");
-    abort();
-  }
-
   if (timer) {
 #ifdef TIMER_VERBOSE
     message("runner %02i: %i parts at depth %i took %.3f ms.", r->id, c->count,
@@ -1112,7 +1101,6 @@ void *runner_main(void *data) {
             error("Unknown task subtype.");
           break;
         case task_type_init:
-	  //message("init");
           runner_doinit(r, ci);
           break;
         case task_type_ghost: