diff --git a/lib/master.pike.in b/lib/master.pike.in
index 87a0ec0bf7bbfd2151ddaa020ea31d3a28046fee..93e4f8232da37da5370eaa478098013284e71808 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1967,6 +1967,11 @@ class dirnode (string dirname, object|void compilation_handler,
 
   protected void create()
   {
+    if (!dirname) {
+      error("Attempt to create a dirnode without a directory.\n"
+	    "Have you inherited a dirnode?\n");
+    }
+
     resolv_debug ("dirnode(%O,%O) created with name %O\n", dirname,
                   compilation_handler, name);
     fc[dirname]=this;
@@ -2323,6 +2328,11 @@ class joinnode (array(object|mapping) joined_modules,
       fallback_module = ([]);
     }
 
+    if (!joined_modules) {
+      error("Attempt to create a joinnode without joined modules.\n"
+	    "Have you inherited a joinnode?\n");
+    }
+
     if (!name)
     {
       mapping(string:int(1..1)) names = ([]);