diff --git a/doc/hook/default_method b/doc/hook/default_method
new file mode 100644
index 0000000..427a131
--- /dev/null
+++ b/doc/hook/default_method
@@ -0,0 +1,44 @@
+SYNOPSIS
+        #include <sys/driver_hooks.h>
+
+        set_driver_hook(H_DEFAULT_METHOD, value)
+
+        <value> being:
+
+          int <name>(mixed & result, string fun, varargs args)
+          int <closure>(mixed & result, object ob, string fun, varargs args)
+
+DESCRIPTION
+        Optional hook to provide default implementation for unresolved
+        calls. Hook setting can be any closure, or the name of the
+        function to call in the object.
+
+        This hook is called whenever a call_other(), call_resolved()
+        or call_out() on named function (as opposed to a closure)
+        couldn't be resolved. The hook has then the opportunity to
+        provide a default implementation.
+
+        Exempt from this behaviour are calls to the master object, to
+        simul-efuns, and calls done with call_direct() and
+        call_direct_resolved().
+
+        If the hook is the name of an lfun, it is called in the target
+        object; otherwise if it is a closure, the target object is
+        passed as parameter <ob>.
+
+        The other parameters passed are the name <fun> of the called
+        function, the arguments <args> passed to the call (if any),
+        and a reference <result> to a variable for the call result.
+
+        If the hook can resolve the call, it has to return the call
+        result in <result> and 1 as function result.
+
+        If the hook can not (or doesn't want to) resolve the call, it
+        has to return 0.
+
+
+HISTORY
+        Introduced in LDMud 3.3.113
+
+SEE ALSO
+        hooks(C)
