diff --git a/src/engine.c b/src/engine.c
index d71f64669852c4eeddb9e1fca4fc1c76698620b7..1f51380c7c6a2a4bd3cea2470967647b29be1f0c 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2951,6 +2951,13 @@ void engine_init_particles(struct engine *e, int flag_entropy_ICs) {
 
   if (e->nodeID == 0) message("Computing initial gas densities.");
 
+  /* Initialise the softening lengths */
+  if (e->policy & engine_policy_self_gravity) {
+
+    for (size_t i = 0; i < s->nr_gparts; ++i)
+      gravity_init_softening(&s->gparts[i], e->gravity_properties);
+  }
+
   /* Construct all cells and tasks to start everything */
   engine_rebuild(e);
 
diff --git a/src/gravity/Default/gravity.h b/src/gravity/Default/gravity.h
index 9ff69357163ca46a3d4b21d048cac465771e047e..312a9b61b1caa97b9ccd9e2c092ca406ab374da2 100644
--- a/src/gravity/Default/gravity.h
+++ b/src/gravity/Default/gravity.h
@@ -113,9 +113,20 @@ __attribute__((always_inline)) INLINE static void gravity_first_init_gpart(
     struct gpart* gp) {
 
   gp->time_bin = 0;
-  gp->epsilon = 0.1;  // MATTHIEU
+  gp->epsilon = 0.f;
 
   gravity_init_gpart(gp);
 }
 
+/**
+ * @brief Initialises the softening of the g-particles
+ *
+ * @param gp The particle to act upon
+ */
+__attribute__((always_inline)) INLINE static void gravity_init_softening(
+    struct gpart* gp, const struct gravity_props* grav_props) {
+
+  gp->epsilon = grav_props->epsilon;
+}
+
 #endif /* SWIFT_DEFAULT_GRAVITY_H */