diff --git a/doc/applied/clean_up b/doc/applied/clean_up
deleted file mode 100644
index 47dfa73..0000000
--- a/doc/applied/clean_up
+++ /dev/null
@@ -1,51 +0,0 @@
-SYNOPSIS
-        int <lfun> (int refcount)
-        int <closure>(int ref, object ob)
-
-DESCRIPTION
-        The hook H_CLEAN_UP defines a lfun or a closure used to clean
-        up an object. In older drivers this was hardwired to the lfun
-        clean_up().
-
-        The function is applied by the driver when an object hasn't been
-        used for a long time, to give it a possibility to
-        self-destruct. The refcount <ref> passed as argument will be 0 for
-        clone objects, 1 for a simple loaded object, and greater when
-        the object is cloned or inherited by some existing object.  It
-        is recommended not to self_destruct the object when the
-        reference count is greater than one.
-
-        By convention, a refcount < 0 is used if some other object
-        asks the called object to clean_up.
-
-        If the function is a closure, the second argument <ob> is the
-        object to clean up.
-
-        If the hook specifies a non-existing lfun, or if the call
-        returns 0, no further attempt to clean up this object will be done.
-
-        Returning a non-zero value is only recommended when the reason
-        why the object can't self-destruct is likely to vanish without
-        the object being touched, that is, when no local function is
-        called in it, (and in compat mode also when the object is not
-        being moved around).
-
-        A typical mud configuration defines the time to wait for
-        clean_up() so long that you can assert reset() has been
-        called since the object has been touched last time.
-
-EXAMPLES
-        A clone of /std/drink defines clean_up() to self-destruct if
-        it is empty, not carried a living being and not touched for
-        a long time.
-
-        A room that inherits /std/room defines clean_up() to
-        self-destruct if it is neither inherited nor used as a
-        blueprint, is empty and was not entered for a long time.
-
-HISTORY
-        Before 3.2.1, the function was hardwired to the lfun clean_up().
-
-SEE ALSO
-        reset(A), heart_beat(A), call_out(E), destruct(E), remove(A),
-        hooks(C)
