diff --git a/doc/efun/unique_array b/doc/efun/unique_array
new file mode 100644
index 0000000..390c56e
--- /dev/null
+++ b/doc/efun/unique_array
@@ -0,0 +1,47 @@
+SYNOPSIS
+        mixed unique_array(object *obj, string|closure fun)
+        mixed unique_array(object *obj, string|closure fun, mixed skip)
+        mixed unique_array(object *obj, string|closure fun, mixed extra...
+                                      , mixed skip)
+
+BESCHREIBUNG
+        Gruppiert alle Objekte aus <*obj>, fuer die die Funktion <fun>
+        den gleichen Wert liefert. Wenn <*obj> etwas anderes als Objekte
+        enthaelt, werden diese ignoriert.
+        
+        Ist die Funktion mit Namen angegeben, wird sie in jedem Objekt
+        in <*obj> einmal aufgerufen. Wurden <extra> Argumente
+        gegeben, werden diese an die Funktion bei jedem Aufruf als
+        Parameter uebergeben.
+
+        Ist die Funktion als Closure angegeben, wird sie fuer jedes Objekt
+        in <*obj> einmal aufgerufen, wobei das Objekt als erstes Argument
+        uebergeben wird, gefolgt von etwaiigen <extra> Argumenten.
+
+        Wird ein Argument <skip> angegeben (bei Verwendung von <extra>
+        Argumenten muss dies geschehen), und entspricht <skip> dem
+        Resultat von <separator> fuer ein Element aus <*obj>, so wird
+        dieses Element nicht in das Resultat von unique_array()
+        uebernommen.
+        
+        Das Resultat von unique_array() hat die Form:
+
+            ({ ({same1:1, same1:2, ... same1:n}),
+               ({same2:1, same2:2, ... same2:n}),
+               ({samem:1, samem:2, ... samem:n}) })
+
+BEISPIEL
+        Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level
+        gruppiert, enthaelt:
+
+            mixed *arr;
+            arr=unique_array(users(), "_query_level", -1);
+
+        Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen,
+        weil <skip> == -1.
+
+SIEHE AUCH
+      Arrays:       filter(E), map(E)
+      Objektarrays: filter_objects(E), map_objects(E)
+      Mappings:     filter(E), map(E), filter_indices(E), map_indices(E)
+
