diff --git a/doc/sphinx/lfun/SubFromProp.rst b/doc/sphinx/lfun/SubFromProp.rst
new file mode 100644
index 0000000..e70fa47
--- /dev/null
+++ b/doc/sphinx/lfun/SubFromProp.rst
@@ -0,0 +1,50 @@
+SubFromProp()
+=========
+
+FUNKTION
+--------
+
+public varargs int SubFromProp(string propname, <int|float|string|mixed*|mapping|bytes> subtrahend)
+
+DEFINIERT IN
+------------
+
+     /std/thing/properties.c
+     /sys/thing/properties.h (Prototyp)
+
+ARGUMENTE
+---------
+
+  - propname: Die Property, die veraendert wird
+  - subtrahend: Was auf den aktuellen Wert "substrahiert" werden soll
+
+BESCHREIBUNG
+------------
+
+  Die Funktion ruft den aktuellen Wert der Property mittels QueryProp() ab, "subtrahiert" <subtrahend> davon und setzt den neuen Wert mit SetProp() wieder. Damit ist sie einfach eine Abkuerzung fuer SetProp(pname, QueryProp(pname) - subtrahend).
+
+  Erlaubte Typen fuer <subtrahend> sind nur solche, mit denen +- etwas anfangen kann und welche zum aktuellen Wert der Property passen. Alles andere loest ggf. einen (Laufzeit-)Fehler auf.
+
+RUeCKGABEWERT
+-------------
+
+     Der Wert der Property nach der Aenderung.
+
+BEISPIELE
+---------
+
+     // einen Int subtrahieren
+     SubFromProp(P_WC, 42);
+     // alle entsprechenden Elemente aus einem Array in der Property loeschen
+     // Achtung: erzeugt ein neues Array!
+     SubFromProp(P_WAITFOR, ({"zesstra"}));
+     // Ein Mappingkey aus einem Mapping in einer Property loeschen
+     SubFromProp(P_M_HEALTH_MOD, ([P_HP]))
+
+SIEHE AUCH
+----------
+
+     :doc:`QueryProp`, :doc:`AddProp`
+     Konzept: properties, /std/thing/properties.c
+
+19.06.2025, Zesstra
