diff --git a/doc/applied/reset b/doc/applied/reset
index 9a83018..8fc3cbb 100644
--- a/doc/applied/reset
+++ b/doc/applied/reset
@@ -1,6 +1,5 @@
 SYNOPSIS
-        void reset(int arg)        /* compat mode */
-        void reset(void)           /* native mode */
+        void reset()
 
 DESCRIPTION
         The H_RESET hook defines the function or closure to be called
@@ -8,18 +7,6 @@
         this was hardwired to the lfun reset(), and a lot of hook
         implementations still follow this tradition.
 
-        In compat mode, reset() was called with arg 0 after the object
-        was compiled, and with arg != 0 every once in a while. In
-        native mode, create() is called after compiling, and reset()
-        is called without arguments every once in a while.
-
-        So, if the argument is zero, the parser is running in compat
-        mode, and reset() may call your create() code. If create() is
-        called, you're on the new version and reset() is not called
-        for object creation. You may call reset() from create() and
-        vice versa, but make sure they do not call each other
-        recursively on either type of driver.
-
         reset() will be called only in objects that have been used
         since the last call to reset(), i.e. a function in them was
         called (other than reset() or clean_up()), or it was moved
@@ -29,8 +16,9 @@
         do some checks or what ever. The game wouldn't be fun if no
         challenges remained.
 
-        For 3.2.1, the mudlib can be programmed to call an other lfun
-        than reset() to reset an object.
+HISTORY
+        LDMud 3.2.1 allowed any other lfun to be called.
+        LDMud 3.6.5 removed the argument given.
 
 SEE ALSO
         clean_up(A), heart_beat(A), call_out(E), create(A), __INIT(A),
diff --git a/doc/hook/clone_uids b/doc/hook/clone_uids
index 8d85790..a60ae93 100644
--- a/doc/hook/clone_uids
+++ b/doc/hook/clone_uids
@@ -33,4 +33,4 @@
 HISTORY
 
 SEE ALSO
-        hooks(C), uids(C), load_uids(H)
+        hooks(C), uids(C), load_uids(H), lwobject_uids(H)
diff --git a/doc/hook/create_clone b/doc/hook/create_clone
index 3b349b7..e8dac03 100644
--- a/doc/hook/create_clone
+++ b/doc/hook/create_clone
@@ -5,18 +5,19 @@
 
         <value> being:
 
-          void <name> (0)
+          void <name>   (...)
           int <closure> ( void )
-          int <closure> (object obj_to_init)
+          int <closure> (object obj_to_init, ...)
 
 DESCRIPTION
         Optional hooks to initialize a cloned object after creation.
         Hook setting can be unbound lambda closures, or the name of
         the function (static or public) to call in the object.
 
-        If the hook is a closure expecting an argument, it is bound
-        to the current object and called with the created object as
-        argument. If the hook is a closure without arguments, it is bound to
+        If the hook is a closure expecting arguments, it is bound to the
+        current object and called with the created object as the first
+        argument and any further arguments from the clone_object() call.
+        If the hook is a closure without arguments, it is bound to
         the object to be initalized and called.
 
         If the result of the closure call is a non-zero number, it is used
@@ -24,11 +25,12 @@
         interval computed from TIME_TO_RESET is used.
 
         If the hook is defined as the name of an lfun in the object,
-        it is called in the object with 0 as argument, and any result
-        is ignored.
+        it is called in the object with any further arguments from the
+        clone_object() call, and any result is ignored.
 
 HISTORY
         LDMud 3.2.10 allowed static functions to be given by name.
+        LDMud 3.6.5 removed the argument given for the lfun call.
 
 SEE ALSO
-        hooks(C), create_ob(H), create_super(H)
+        hooks(C), create_ob(H), create_super(H), create_lwobject(H)
diff --git a/doc/hook/create_ob b/doc/hook/create_ob
index 3bb8798..204a1f9 100644
--- a/doc/hook/create_ob
+++ b/doc/hook/create_ob
@@ -5,7 +5,7 @@
 
         <value> being:
 
-          void <name> (0)
+          void <name>   ( void )
           int <closure> ( void )
           int <closure> (object obj_to_init)
 
@@ -25,11 +25,12 @@
         interval computed from TIME_TO_RESET is used.
 
         If the hook is defined as the name of an lfun in the object,
-        it is called in the object with 0 as argument and any result
+        it is called in the object with no argument and any result
         is ignored.
 
 HISTORY
         LDMud 3.2.10 allowed static functions to be given by name.
+        LDMud 3.6.5 removed the argument given for the lfun call.
 
 SEE ALSO
-        hooks(C), create_super(H), create_clone(H)
+        hooks(C), create_super(H), create_clone(H), create_lwobject(H)
diff --git a/doc/hook/create_super b/doc/hook/create_super
index 0e51a4b..0f05542 100644
--- a/doc/hook/create_super
+++ b/doc/hook/create_super
@@ -5,7 +5,7 @@
 
         <value> being:
 
-          void <name> (0)
+          void <name>   ( void )
           int <closure> ( void )
           int <closure> (object obj_to_init)
 
@@ -26,11 +26,12 @@
         interval computed from TIME_TO_RESET is used.
 
         If the hook is defined as the name of an lfun in the object,
-        it is called in the object with 0 as argument and any result
+        it is called in the object with no argument and any result
         is ignored.
 
 HISTORY
         LDMud 3.2.10 allowed static functions to be given by name.
+        LDMud 3.6.5 removed the argument given for the lfun call.
 
 SEE ALSO
-        hooks(C), create_ob(H), create_clone(H)
+        hooks(C), create_ob(H), create_clone(H), create_lwobject(H)
diff --git a/doc/hook/default_method b/doc/hook/default_method
index 9f3cbab..54d4be7 100644
--- a/doc/hook/default_method
+++ b/doc/hook/default_method
@@ -13,14 +13,14 @@
         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.
+        This hook is called whenever a call_other(), call_resolved(),
+        call_strict() 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().
+        simul-efuns, and calls done with call_direct(),
+        call_direct_resolved() and call_strict_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
diff --git a/doc/hook/load_uids b/doc/hook/load_uids
index 7221dd5..d340dd0 100644
--- a/doc/hook/load_uids
+++ b/doc/hook/load_uids
@@ -32,4 +32,4 @@
 HISTORY
 
 SEE ALSO
-        hooks(C), uids(C), clone_uids(H)
+        hooks(C), uids(C), clone_uids(H), lwobject_uids(H)
diff --git a/doc/hook/reset b/doc/hook/reset
index dcb1c9d..5021991 100644
--- a/doc/hook/reset
+++ b/doc/hook/reset
@@ -6,7 +6,7 @@
         <value> being:
 
           void|int <closure> ( void )
-          void <name>(1)
+          void <name>( void )
 
 DESCRIPTION
         Optional hook to reset an object. Hook setting can be unbound
@@ -23,7 +23,7 @@
         be reset again, unless directed otherwise by set_next_reset().
 
         If the hook is defined as the name of an lfun in the object,
-        it is called in the object with 1 as argument, and any result
+        it is called in the object with no argument, and any result
         is ignored. In this call the previous_object() is the object
         initiating the reset. If the function does not exist, the
         object won't be reset again.
@@ -33,6 +33,7 @@
 
 HISTORY
         LDMud 3.2.10 allowed static functions to be given by name.
+        LDMud 3.6.5 removed the argument given for the lfun call.
 
 SEE ALSO
         hooks(C)
