diff --git a/std/player/command.c b/std/player/command.c
index 9616281..301782c 100644
--- a/std/player/command.c
+++ b/std/player/command.c
@@ -265,7 +265,7 @@
   string commandverb;
   string *tmp,um,*hits;
   int num, l, pos, cont;
-  int display_as_aliascommand;
+  int display_as_aliascommand, familymode;
 
   // unbearbeitetes Kommando ohne Verb ermitteln (auch ohne Trim an Anfang und
   // Ende)
@@ -276,12 +276,19 @@
   if( !(str = um||_unparsed_args()) || str=="*")
     return query_aliases(0);
 
-    if (str=="-a" || strstr(str, "-a ")==0 )  {
-    str=str[2..];
-    if (str && str!="" && str[0]==' ') str=str[1..];
-    if (!str || str=="" || str=="*") return query_aliases(1);
-    display_as_aliascommand=1;
+  while(sizeof(str) >= 2 && str[0] == '-')
+  {
+    if (str[1] == 'a')
+      display_as_aliascommand = 1;
+    else if (str[1] == 'f')
+      familymode = 1;
+    else
+      break;
+    // "-? " abschneiden
+    str = trim(str[2..], TRIM_LEFT);
   }
+  if (!sizeof(str) || str=="*")
+    return query_aliases(display_as_aliascommand);
 
   pos=member(str,' ');
   if (pos < 0) // Nur 1 Arg, Alias abfragen
@@ -391,6 +398,16 @@
   if ( !(str=um || _unparsed_args()))
     return 0;
 
+  while(sizeof(str) >= 2 && str[0] == '-')
+  {
+    if (str[1] == 'f')
+      familymode = 1;
+    else
+      break;
+    // "-f " abschneiden
+    str = trim(str[2..], TRIM_LEFT);
+  }
+
   if (str == "*.*" || str == "*") {
     write(break_string(
       "Versuchs mal mit 'unalias .*', wenn Du wirklich alle Alias entfernen "
