diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index 3aabf63..6925051 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -838,7 +838,7 @@
 // TODO: KOMMENTAR
 //check may contain a closure
 //         called when a join/leave/send/list/users message is received
-public varargs int new(string ch_name, object owner, string|closure info)
+public varargs int new(string ch_name, object owner, string|closure desc)
 {
   // Kein Channelmaster angegeben, oder wir sind es selbst, aber der Aufruf
   // kam von ausserhalb. (Nur der channeld selbst darf sich als Channelmaster
@@ -860,13 +860,13 @@
   if (IsBanned(owner,C_NEW) || regmatch(object_name(owner), IGNORE))
     return E_ACCESS_DENIED;
 
-  // Keine Infos mitgeliefert? Dann holen wir sie aus dem Cache.
-  if (!info)
+  // Keine Beschreibung mitgeliefert? Dann holen wir sie aus dem Cache.
+  if (!desc)
   {
     if (channelC[lower_case(ch_name)])
     {
       ch_name = channelC[lower_case(ch_name)][0];
-      info = channelC[lower_case(ch_name)][1];
+      desc = channelC[lower_case(ch_name)][1];
     }
     else
     {
@@ -875,14 +875,14 @@
   }
   else
   {
-    channelC[lower_case(ch_name)] = ({ ch_name, info, time() });
+    channelC[lower_case(ch_name)] = ({ ch_name, desc, time() });
   }
 
   object* pls = ({ owner });
   m_add(channels, lower_case(ch_name),
            ({ pls,
               symbol_function("check_ch_access", owner) || #'check_ch_access,
-              info,
+              desc,
               (!living(owner) && !clonep(owner) && owner != this_object()
                   ? object_name(owner)
                   : owner),
@@ -896,7 +896,7 @@
   // Erstellen neuer Ebenen loggen, wenn wir nicht selbst der Ersteller sind.
   if (owner != this_object())
     log_file("CHANNEL.new", sprintf("[%s] Neue Ebene %s: %O %O\n",
-        dtime(time()), ch_name, owner, info));
+        dtime(time()), ch_name, owner, desc));
 
   // Erfolgsmeldung ausgeben, ausser bei unsichtbarem Ebenenbesitzer.
   if (!owner->QueryProp(P_INVIS))
diff --git a/p/daemon/channeld.init b/p/daemon/channeld.init
index f5e5586..debe70b 100644
--- a/p/daemon/channeld.init
+++ b/p/daemon/channeld.init
@@ -1,6 +1,6 @@
 # CHANNEL MASTER INIT FILE
 # To create a new channel:
-# <name>:<recv>:<send>:<accessflags>:<info>:<supervisor>
+# <name>:<recv>:<send>:<accessflags>:<desc>:<supervisor>
 Allgemein:   0: 0: 0:Allgemeine Unterhaltungsebene
 Abenteuer:   0: 0: 0:Fragen die Abenteuer betreffen:	/secure/questmaster
 Grats:	     0: 0: 0:Gratulationen zu geloesten Abenteuern etc
diff --git a/p/daemon/channeld.init.testmud b/p/daemon/channeld.init.testmud
index b424337..4dc4195 100644
--- a/p/daemon/channeld.init.testmud
+++ b/p/daemon/channeld.init.testmud
@@ -1,6 +1,6 @@
 # CHANNEL MASTER INIT FILE
 # To create a new channel:
-# <name>:<recv>:<send>:<accessflags>:<info>:<supervisor>
+# <name>:<recv>:<send>:<accessflags>:<desc>:<supervisor>
 #
 # Debug-Ebenen initialisieren.
 Debug:      20:60: 1:Debug und Fehlermeldungen:		/p/daemon/debug
