diff --git a/doc/sphinx/lfun/buy_obj.rst b/doc/sphinx/lfun/buy_obj.rst
new file mode 100644
index 0000000..1aeab6c
--- /dev/null
+++ b/doc/sphinx/lfun/buy_obj.rst
@@ -0,0 +1,66 @@
+buy_obj()
+=========
+
+FUNKTION
+--------
+::
+
+	static string buy_obj(mixed ob, int short);
+
+DEFINIERT IN
+------------
+::
+
+	/std/shop.c
+
+ARGUMENTE
+---------
+::
+
+	ob - der Gegenstand bei dem geprueft werden soll, ob der Laden ihn
+	     an this_player() verkauft. Sollte es sich hierbei um ein
+	     FixedObject handeln, wird ein String uebergeben, ansonsten ein
+	     object.
+        short - Bisher noch nicht in Benutzung. Aber fuer die Zukunft
+             vorgesehn, falls man mehrere Objekte auf einmal kauft.
+             Ein auswerten ist keine Pflicht, waere aber praktisch, damit
+             der Scroll dabei nicht zu gross wird.
+
+RUeCKGABEWERT
+-------------
+::
+
+        Ein String was der Haendler sagen soll wieso der Gegenstand nicht
+	verkauft wird. Der String wird dabei wie folgt umgebrochen:
+        break_string(str, 78, Name(WER, 1)+" sagt: ")
+
+BESCHREIBUNG
+------------
+::
+
+	Durch ueberschreiben dieser Funktion ist es moeglich bestimmte
+	Objekte (wie z.b. Questobjekte) nur an ausgewaehlte Spieler zu
+	verkaufen). Aber auch abfragen ob der Laden ueberhaupt mit
+	this_player() handelt, sind moeglich.
+
+BEISPIELE
+---------
+::
+
+	static string buy_obj(mixed ob, int short)
+	{
+	   if (PL->QueryProp(P_RACE)=="Zwerg")
+	      return "Ich verkaufe nichts an Zwerge!";
+	   return ::buy_obj(ob, short);
+	}
+
+SIEHE AUCH
+----------
+::
+
+	sell_obj(), AddFixedObject(), RemoveFixedObject(), SetStorageRoom(),
+        /std/shop.c
+
+
+Last modified: Thu Mar 4 15:26:13 1999 by Padreic
+
