diff --git a/doc/efun/configure_object b/doc/efun/configure_object
new file mode 100644
index 0000000..9a54789
--- /dev/null
+++ b/doc/efun/configure_object
@@ -0,0 +1,41 @@
+SYNOPSIS
+        #include <configuration.h>
+
+        void configure_object(object ob, int what, mixed data)
+
+DESCRIPTION
+        Sets the option <what> to the value <data> on the object <ob>
+        or the default for all interactives if <ob> is 0.
+
+        If the first argument <ob> is not this_object(), the privilege
+        violation ("configure_object", this_object(), ob, what, data)
+        occurs.
+
+        As <what>, the following arguments are accepted:
+
+        <what> == OC_COMMANDS_ENABLED
+          Sets whether <ob> can use commands normally accessible to
+          users (1) or not (0). This also marks the object as "living".
+
+        <what> == OC_HEART_BEAT
+          Enables (1) or disables (0) the heart beat for <ob>. The
+          driver will apply the lfun heart_beat() to the <ob> every
+          __HEARTBEAT_INTERVAL__ seconds, if it is enabled.
+          A shadow over the heart_beat() lfun will be ignored.
+
+          If the heart beat is not needed for the moment, then do disable
+          it. This will reduce system overhead.
+
+          Note that heart_beat()s are called only if there are enabled
+          via configuer_driver(DC_ENABLE_HEART_BEATS), which is the
+          default.
+
+
+        The current values for these options can be queried using
+        object_info().
+
+HISTORY
+        Introduced in LDMud 3.5.0.
+
+SEE ALSO
+        object_info(E), configure_interactive(E), configure_driver(E)
