diff --git a/src/lib66/tree/tree_service_add.c b/src/lib66/tree/tree_service_add.c
index f6fa8d2cde4e71c128bd44b7098f6a0e800a78b9..d70674109941636a68caa7669bb5b0e717126f81 100644
--- a/src/lib66/tree/tree_service_add.c
+++ b/src/lib66/tree/tree_service_add.c
@@ -42,10 +42,15 @@ void tree_service_add(char const *base, char const *treename, char const *servic
         if (!sastr_sortndrop_element(&sa))
             log_dieu(LOG_EXIT_SYS, "sort string") ;
 
-    } else if (!sastr_add_string(&sa, service))
-        log_dieu(LOG_EXIT_SYS, "add string") ;
+        tres.ncontents = sastr_nelement(&sa) ;
 
-    tres.ncontents++ ;
+    } else {
+
+        if (!sastr_add_string(&sa, service))
+            log_dieu(LOG_EXIT_SYS, "add string") ;
+
+        tres.ncontents++ ;
+    }
 
     if (!sastr_rebuild_in_oneline(&sa))
         log_dieu(LOG_EXIT_SYS, "rebuild stralloc list") ;