diff --git a/src/66/66-tree.c b/src/66/66-tree.c
index 1ced662879db126f0c929a41fc0ec784d4a1601d..0594e2a6d8444b76b2de076a2a7dba3e0439c0fc 100644
--- a/src/66/66-tree.c
+++ b/src/66/66-tree.c
@@ -405,8 +405,11 @@ void tree_unsupervise(stralloc *live, char const *tree, char const *treename,uid
 	
 	if (!list.len) 
 	{ 
-		log_warn("Not supervised: ",livestate.s) ;
-		return ;
+		/** No service to unsupervise but we need to
+		 * delete the livestate anyway*/
+		log_warn("No service to unsupervise: ",livestate.s) ;
+		/** pass through s6rc_servicedir_unsupervise just in case */
+		goto follow ;
 	}
 	
 	{ 
@@ -439,6 +442,7 @@ void tree_unsupervise(stralloc *live, char const *tree, char const *treename,uid
 		if (wstat) log_warnusys("stop services") ;
 	}	
 	
+	follow:
 	if (db_find_compiled_state(livetree.s,treename) >=0)
 	{	
 		list.len = 0 ;