diff --git a/doc/pcmd/telnet b/doc/pcmd/telnet
index 029317f..489708f 100644
--- a/doc/pcmd/telnet
+++ b/doc/pcmd/telnet
@@ -32,6 +32,7 @@
 
  SIEHE AUCH:
     telnegs, telnet keepalive, telnet gmcp
+    P_TELNET_KEEPALIVE_DELAY
 
  LETZTE AeNDERUNG:
-    15.01.2018, Zesstra
+    26.07.2019, Zesstra
diff --git a/doc/pcmd/telnet_keepalive b/doc/pcmd/telnet_keepalive
index eecbfd7..770ceba 100644
--- a/doc/pcmd/telnet_keepalive
+++ b/doc/pcmd/telnet_keepalive
@@ -19,11 +19,11 @@
     Verbindung terminiert wird. Daher besitzen die Spielershells ein
     einschaltbares 'Telnet-Keep-Alive'.
 
-    Diese Funktion schickt alle 4 min Daten an eure Clients, die diese
-    nicht anzeigen, aber ihrerseits beantworten/bestaetigen (sofern der Client
-    dies unterstuetzt). So gibt es in der Verbindung zum Mud min. alle 4 min
-    Datenverkehr. Das sollte Verbindungsabbruechen durch Inaktivitaet
-    vorbeugen.
+    Diese Funktion schickt regelmaessig (Standardeinstellung: alle 4 min)
+    Daten an eure Clients, die diese nicht anzeigen, aber ihrerseits
+    beantworten/bestaetigen (sofern der Client dies unterstuetzt). So gibt
+    es in der Verbindung zum Mud regelmaessig Datenverkehr. Das sollte
+    Verbindungsabbruechen durch Inaktivitaet vorbeugen.
 
     Bitte schaltet diese Funktion aber nur ein, wenn ihr sie braucht, d.h.
     ohne sie Probleme mit Verbindungsabbruechen beim Ideln habt.
@@ -32,11 +32,9 @@
 
     Ohne Argumente wird der aktuelle Zustand angezeigt.
 
-    Hinweis fuer Magier: Magier im Magiermodus (mschau ein) kommen leider
-    nicht in den Genuss dieses Features, weil sie keinen Heartbeat haben.
-
  SIEHE AUCH:
-    telnegs, telnet gmcp
+    telnegs, telnet gmcp,
+    P_TELNET_KEEPALIVE_DELAY
 
  LETZTE AeNDERUNG:
-    08.12.2015, Zesstra
+    26.07.2019, Zesstra
diff --git a/doc/sphinx/props/P_TELNET_KEEPALIVE_DELAY.rst b/doc/sphinx/props/P_TELNET_KEEPALIVE_DELAY.rst
new file mode 100644
index 0000000..d50b4cb
--- /dev/null
+++ b/doc/sphinx/props/P_TELNET_KEEPALIVE_DELAY.rst
@@ -0,0 +1,39 @@
+P_TELNET_KEEPALIVE_DELAY
+========================
+
+NAME
+----
+
+     P_TELNET_KEEPALIVE_DELAY "p_lib_telnet_alive_delay"
+
+DEFINIERT IN
+------------
+
+     <player/telnetneg.h>
+
+BESCHREIBUNG
+------------
+
+     In dieser Property kann der zeitliche Abstand zwischen zwei Aussendungen
+     der "Telnet Timing Mark", welche fuer das Telnet keep-alive benutzt wird,
+     bestimmt werden. Die Angabe ist in Heartbeats.
+     Eine 0 fuehrt zu einer Standardverzoegerung (zur Zeit 240 s).
+
+     Wenn diese Property in einem Magier (oder Spieler) gesetzt wird, sollte
+     experimentell ermittelt werden, welcher Wert sinnvoll ist. Dies kann z.B.
+     dadurch erfolgen, dass von 120 (Heartbeats) eine stufenweise Reduktion
+     erfolgt, bis kein Disconnect mehr erfolgt. Helfen sehr niedrige Werte
+     nicht, sollte die Verzoegerung wieder erhoeht werden bzw. das Keepalive
+     ganz abgeschaltet werden.
+
+BEMERKUNGEN
+-----------
+
+     Die Property sollte nicht auf weniger als 30 gesetzt werden.
+
+SIEHE AUCH
+----------
+
+     :doc:`../pcmd/telnet`
+
+25.07.2019, Zesstra
diff --git a/std/player/base.c b/std/player/base.c
index e83930e..b48fadc 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -73,6 +73,7 @@
 #include "/secure/questmaster.h"
 #include "/secure/lepmaster.h"
 #include <events.h>
+#include <player/telnetneg.h>
 
 #undef NAME /* DEFINED BY UDP.H; BAD NAME CLASH :( */
 #define NAME(who) capitalize(getuid(who))
@@ -742,7 +743,7 @@
   * @return 1, falls der Spieler Keep-Alive Paket wuenscht, sonst 0. 
   * @see heart_beat()
 */
-protected int CheckTelnetKeepAlive() {
+protected int CheckTelnetKeepAlive(int delay) {
   if (telnet_tm_counter > 0) {
     // Spieler hat offenbar ein Keep-Alive konfiguriert ...
     if (!(--telnet_tm_counter)) {
@@ -753,7 +754,7 @@
       // alle 120 HBs (240s, 4min).
       // sollte eigentlich 240 / __HEART_BEAT_INTERVAL__ sein. Aber spart
       // eine Operation im HB. ;-)
-      telnet_tm_counter = 120;
+      telnet_tm_counter = delay || 120;
     }
     return 1; // Keep-Alive ist eingeschaltet
   }
@@ -809,7 +810,7 @@
   if (CheckDailyPlaytime())
     return;
 
-  CheckTelnetKeepAlive();
+  CheckTelnetKeepAlive(QueryProp(P_TELNET_KEEPALIVE_DELAY));
 
   life::heart_beat();
   combat::heart_beat();
@@ -4213,11 +4214,16 @@
 
 private int set_keep_alive(string str) {
   if (str == "ein") {
-    telnet_tm_counter = 240 / __HEART_BEAT_INTERVAL__;
-    tell_object(this_object(), break_string(
-        "An Deinen Client werden jetzt alle 4 Minuten unsichtbare Daten "
+    telnet_tm_counter = QueryProp(P_TELNET_KEEPALIVE_DELAY) || (240 / __HEART_BEAT_INTERVAL__);
+    tell_object(this_object(), break_string( sprintf(
+        "An Deinen Client werden jetzt alle %i Sekunden unsichtbare Daten "
         "geschickt, um zu verhindern, dass Deine Verbindung zum "MUDNAME
-        " beendet wird.", 78));
+        " beendet wird.",
+        telnet_tm_counter*__HEART_BEAT_INTERVAL__), 78));
+    // Bei Magiern ist der HB evtl. ausgeschaltet und muss eingeschaltet
+    // werden.
+    if (!object_info(this_object(), OC_HEART_BEAT))
+      configure_object(this_object(), OC_HEART_BEAT, 1);
   }
   else if (str == "aus") {
     telnet_tm_counter = 0;
diff --git a/std/shells/magier.c b/std/shells/magier.c
index 90da043..efde69f 100644
--- a/std/shells/magier.c
+++ b/std/shells/magier.c
@@ -40,6 +40,7 @@
 #include <properties.h>
 #include <new_skills.h>
 #include <config.h>
+#include <player/telnetneg.h>
 
 protected void create()
 {
@@ -76,7 +77,8 @@
 
   if (!QueryProp(P_WANTS_TO_LEARN)||((en=QueryEnemies())&&sizeof(en[0])))
     base::heart_beat();
-  else if (!CheckTelnetKeepAlive()) {
+  else if (!CheckTelnetKeepAlive(QueryProp(P_TELNET_KEEPALIVE_DELAY)))
+  {
     // Wenn der Magier kein Telnet Keep-Alive wuenscht, kann der HB ganz
     // abgeschaltet werden. Sonst muss er aber weiterlaufen, damit
     // CheckTelnetKeepAlive() regelmaessig gerufen wird.
diff --git a/sys/player/telnetneg.h b/sys/player/telnetneg.h
index 415ed90..6a5f1ca 100644
--- a/sys/player/telnetneg.h
+++ b/sys/player/telnetneg.h
@@ -9,6 +9,7 @@
 #ifndef _TELNETNEG_H_
 #define _TELNETNEG_H_
 
+#define P_TELNET_KEEPALIVE_DELAY "p_lib_telnet_alive_delay"
 #endif
 
 #ifdef NEED_PROTOTYPES
