diff --git a/lib/master.pike.in b/lib/master.pike.in index a2bf00fa2256a284de9415c5c9df802fadb38cea..f05c9cc7e0d3c2cdf40bab222ee4ea8eda49b630 100644 --- a/lib/master.pike.in +++ b/lib/master.pike.in @@ -5236,7 +5236,13 @@ class Encoder break compare; } - if (resolved->is_resolv_dirnode) + if ((resolved->is_resolv_joinnode) && + (sizeof(resolved->joined_modules) == 1)) { + ENC_MSG(" compare_resolved: %O is a single element joinnode.\n", + resolved); + resolved = resolved->joined_modules[0]; + } + if (resolved->is_resolv_dirnode) { if (resolved->module == what) { ENC_MSG (" compare_resolved: %O is dirnode module of %O\n", what, resolved); append = ({'m'}); @@ -5252,7 +5258,7 @@ class Encoder else ENC_MSG (" compare_resolved: %O is different from dirnode module %O\n", what, resolved->module); - + } #if 0 // This is only safe if the joinnode modules don't conflict, // and we don't know that. @@ -5267,6 +5273,8 @@ class Encoder } } #endif + } else { + ENC_MSG(" compare_resolved: %O is not an object.\n", resolved); } ENC_MSG (" compare_resolved: %O is different from %O\n", what, resolved);