diff --git a/src/core/unit.c b/src/core/unit.c index 6c0684225a..81cd7ee2b8 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -3222,6 +3222,10 @@ void unit_ref_unset(UnitRef *ref) { if (!ref->unit) return; + /* We are about to drop a reference to the unit, make sure the garbage collection has a look at it as it might + * be unreferenced now. */ + unit_add_to_gc_queue(ref->unit); + LIST_REMOVE(refs, ref->unit->refs, ref); ref->unit = NULL; }