diff --git a/src/server/connections.c b/src/server/connections.c
index 2f550444207115a4969c88b1d8a2ee60e32c6bc3..30d3fe192ff0cd6f2534e6ba1820cbda58e7be65 100644
--- a/src/server/connections.c
+++ b/src/server/connections.c
@@ -57,7 +57,7 @@ BUGDECL;
 
 
 
-void
+static void
 logout_client(Connection *cp)
 {
     Connection *real_active_connection;
@@ -111,6 +111,32 @@ logout_client(Connection *cp)
     kill_client(cp);		/* Free the Connection */
 }
 
+/*
+ * This function is part of the shutdown tidy-up sequence.
+ */
+void
+logout_all_clients(void)
+{
+    Session_no sess = 0;
+    Connection *conn;
+    
+    while ( (sess = traverse_connections (sess)) != 0)
+    {
+	conn = get_conn_by_number (sess);
+
+	if ( conn == NULL )
+	    restart_kom("logout_all_clients(): cant get session %d.\n",
+			sess);
+	else
+	    logout_client (conn);
+    }
+
+    if ( traverse_connections (0) != 0)
+	restart_kom("logout_all_clients(): traverse_connections(0) == %d.\n",
+		    traverse_connections(0));
+}
+
+