diff --git a/doc/efun/tls_init_connection b/doc/efun/tls_init_connection
new file mode 100644
index 0000000..e33afae
--- /dev/null
+++ b/doc/efun/tls_init_connection
@@ -0,0 +1,50 @@
+PRELIMINARY
+SYNOPSIS
+        int tls_init_connection(object ob)
+        int tls_init_connection(object ob, string fun, string|object fob, mixed extra...)
+        int tls_init_connection(object ob, closure fun, mixed extra...)
+
+DESCRIPTION
+        tls_init_connection() tries to start a TLS secured connection to 
+        the interactive object <ob> (or this_object() if <ob> is not given).
+
+        Result:
+          errorcode < 0: unsuccessful, use tls_error() to get an useful
+                         description of the error
+             number > 0: the secure connection is still being set up in the
+                          background
+            number == 0: the secure connection is active.
+        
+        OpenSSL only:
+
+            If the callback <fun>/<fun>:<fob> is specified, it will be called
+            once the fate of the secure connection has been determined. The
+            first argument will be the return code from the handshake
+            (errorcode < 0 on failure, or 0 on success), followed by the
+            interactive object <ob> and any <extra> arguments.
+
+        If the TLS setup fails, it is not necessary to call
+        tls_deinit_connection().
+
+        IMPORTANT: During the TLS handshake nothing else must be sent
+        to the client! For the most cases (TLS-capable clients logging in)
+        this means that the TLS handshake is the first and only thing the
+        client gets to see while the handshake is in progress.
+
+        The driver automatically suppresses the printing of the prompt
+        while the TLS handshake is in progress.
+
+        If tls_init_connection() is called in the master::connect() function,
+        the driver will either call the set callback in place of logon(), or
+        if not callback has been set, delay the call of logon() until the
+        state of the connection is clear.
+
+HISTORY
+        Introduced in LDMud 3.3.474 and following, backported to 3.2.11.
+        LDMud 3.2.13/3.3.713 streamlined the handling of secure connections
+        during logon.
+
+SEE ALSO
+        tls_deinit_connection(E), tls_error(E), tls_query_connection_state(E),
+        tls_query_connection_info(E), tls_available(E),
+        tls_check_certificate(E), tls_refresh_certs(E), connect(M), logon(A)
