diff --git a/src/lib66/tree/tree_isvalid.c b/src/lib66/tree/tree_isvalid.c
index 3496adb9dc0d4bb84c9d2f05368300470a19d4e2..24b67161c3bcff6da4cb5e4ade4e857a9dba1544 100644
--- a/src/lib66/tree/tree_isvalid.c
+++ b/src/lib66/tree/tree_isvalid.c
@@ -28,48 +28,12 @@ int tree_isvalid(char const *base, char const *treename)
     log_flow() ;
 
     int e = -1 ;
-    size_t pos = 0 ;
-    stralloc sa = STRALLOC_ZERO ;
-    resolve_tree_master_t mres = RESOLVE_TREE_MASTER_ZERO ;
-    resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE_MASTER, &mres) ;
+    resolve_tree_t tres = RESOLVE_TREE_ZERO ;
+    resolve_wrapper_t_ref twres = resolve_set_struct(DATA_TREE, &tres) ;
 
-    /** make distinction between system error
-     * and unexisting tree */
-    {
-        resolve_tree_t tres = RESOLVE_TREE_ZERO ;
-        resolve_wrapper_t_ref twres = resolve_set_struct(DATA_TREE, &tres) ;
+    e = resolve_check_g(twres, base, treename) ;
 
-        if (!resolve_check_g(twres, base, treename)) {
-            e = 0 ;
-            goto freed ;
-        }
-        resolve_free(twres) ;
-    }
-
-    if (!resolve_read_g(wres, base, SS_MASTER + 1))
-        goto freed ;
-
-    if (!tree_resolve_master_get_field_tosa(&sa, &mres, E_RESOLVE_TREE_MASTER_CONTENTS))
-        goto freed ;
-
-    if (mres.ncontents) {
-
-        if (!sastr_clean_string_flush_sa(&sa, sa.s))
-            goto freed ;
-
-        FOREACH_SASTR(&sa, pos) {
-
-            if (!strcmp(treename, sa.s + pos)) {
-                e = 1 ;
-                goto freed ;
-            }
-        }
-
-    } else e = 0 ;
-
-    freed:
-        stralloc_free(&sa) ;
-        resolve_free(wres) ;
-        return e ;
+    resolve_free(twres) ;
 
+    return e ;
 }