diff --git a/doc/lfun/IsGuildMember b/doc/lfun/IsGuildMember
new file mode 100644
index 0000000..bc29366
--- /dev/null
+++ b/doc/lfun/IsGuildMember
@@ -0,0 +1,67 @@
+
+IsGuildMember()
+***************
+
+
+FUNKTION
+========
+
+   varargs int IsGuildMember(object pl)
+
+
+DEFINIERT IN
+============
+
+   /std/gilden_ob.c
+
+
+RUeCKGABEWERT
+=============
+
+   1
+      wenn Gildenmitglied
+
+   0
+      sonst
+
+
+BESCHREIBUNG
+============
+
+   Gibt 1 zurueck, wenn der Spieler Gildenmitglied ist, d.h. P_GUILD
+   entsprechend den Gildennamen gesetzt ist. Weitere Pruefungen auf
+   Properties oder Skills werden nicht vorgenommen.
+
+   Kann fuer Spieleraktionen im Gildenraum benutzt werden. Setzt
+   bereits ein _notify_fail() fuer Nichtgildenmitglieder.
+
+
+BEISPIEL
+========
+
+   protected int clown_weihe(string str)
+   {
+     if(IsGuildMember()) {
+       tortenweihe+=getuid(this_player());
+       this_player()->ReceiveMsg(
+         "Du kniest nieder und empfaengt die Torte des Meisterclown.",
+         MT_NOTIFICATION);
+       send_room(
+         this_object(),
+         this_player()->Name()+" kniet nieder und wird wuerdig getortet.",
+         MT_LOOK|MT_LISTEN,
+         MA_EMOTE, 0, ({this_player()}));
+       return 1;
+     }
+     return 0;
+   }
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:
+      *GuildName()*
+
+   Props:
+      *P_GUILD*
