diff --git a/doc/help/syntax b/doc/help/syntax
index 2315c37..88da7cb 100644
--- a/doc/help/syntax
+++ b/doc/help/syntax
@@ -27,8 +27,8 @@
     > steck das zweite Schwert in den Beutel
 
     Solltest Du irgendwo im Spiel auf eine Stelle stossen, wo keine
-    grammatikalisch richtige Eingabe erwartet wird, gib bitte einem Magier
-    Bescheid.
+    grammatikalisch richtige Eingabe erwartet wird, setz bitte mit 
+    'syntaxhinweis' einen Hinweis ab.
 
     Wenn Du bei der Verwendung eines Adverbs in Zusammenhang mit einem Verb
     Probleme hast, so vergewissere Dich, ob das Verb ueberhaupt die Verwendung
@@ -54,7 +54,6 @@
     > grinse /was-neues-was-auch-nicht-in-der-"adverb"-Liste-steht
 
  SIEHE AUCH:
-    verben, adverb, idee
+    syntaxhinweis, verben, adverb, idee
 
- LETZTE AeNDERUNG:
-    Thu, 24.07.1997, 09:00:00 von Wargon
+Letzte Aenderung: 16.06.2017, Bugfix
diff --git a/doc/pcmd/bug b/doc/pcmd/bug
index a5a26ef..0e9fcdf 100644
--- a/doc/pcmd/bug
+++ b/doc/pcmd/bug
@@ -55,8 +55,6 @@
     momentanen Raum abgesetzt.
 
 SIEHE AUCH:
-    typo, idee, detail, regeln, bezugsobjekt
+    typo, idee, syntaxhinweis, detail, regeln, bezugsobjekt
 
-LETZTE AeNDERUNG:
-    30. Aug 2016 Arathorn
-
+Letzte Aenderung: 16.06.2017, Bugfix
diff --git a/doc/pcmd/fehler b/doc/pcmd/fehler
index 98a6675..9a5c2c0 100644
--- a/doc/pcmd/fehler
+++ b/doc/pcmd/fehler
@@ -11,12 +11,13 @@
     Manche Idee ist dem Magier auch nicht so klar, wie dem Spieler, der
     spaeter einmal durchlaeuft.
 
-    Zum Melden dieser Fehler gibt es vier Kommandos, die durch das Kommando
+    Zum Melden dieser Fehler gibt es fuenf Kommandos, die durch das Kommando
     'fehler' gelistet werden:
-    * 'bug'    - Meldung eines Fehlers / einer Fehlfunktion
-    * 'typo'   - Meldung eines Tippfehler
-    * 'detail' - Vorschlaege, ein fehlendes Detail zu ergaenzen
-    * 'idee'   - Vorschlaege mit Ideen zur Erweiterung
+    * 'bug'           - Meldung eines Fehlers / einer Fehlfunktion
+    * 'typo'          - Meldung eines Tippfehler
+    * 'detail'        - Vorschlaege, ein fehlendes Detail zu ergaenzen
+    * 'idee'          - Vorschlaege mit Ideen zur Erweiterung
+    * 'syntaxhinweis' - Problematische oder unklare Syntax
 
 BEMERKUNG:
     Frueher hatte dieses Kommando die gleiche Funktionalitaet wie 'bug',
@@ -24,7 +25,6 @@
     'fehler' abgesetzt, daher wurde das geaendert.
 
 SIEHE AUCH:
-    bug, typo, idee, detail
+    bug, typo, idee, detail, syntax
 
-LETZTE AeNDERUNG:
-    12. Okt 2011 Gloinson
\ No newline at end of file
+Letzte Aenderung: 16.06.2017, Bugfix
diff --git a/doc/pcmd/idee b/doc/pcmd/idee
index 41342c6..5b84f18 100644
--- a/doc/pcmd/idee
+++ b/doc/pcmd/idee
@@ -39,7 +39,6 @@
     momentanen Raum abgesetzt.
 
 SIEHE AUCH:
-    bug, typo, detail, bezugsobjekt
+    bug, syntaxhinweis, typo, detail, bezugsobjekt
 
-LETZTE AeNDERUNG:
-    12. Okt 2011 Gloinson
+Letzte Aenderung: 16.06.2017, Bugfix
\ No newline at end of file
diff --git a/doc/pcmd/syntaxhinweis b/doc/pcmd/syntaxhinweis
new file mode 100644
index 0000000..d936759
--- /dev/null
+++ b/doc/pcmd/syntaxhinweis
@@ -0,0 +1,39 @@
+syntaxhinweis
+-------------
+
+KOMMANDO:
+    syntaxhinweis <text>
+    syntaxhinweis <objekt>:<text>
+
+ARGUMENTE:
+
+    <text>
+        Eine Mitteilung
+    <objekt>
+        Ein Referenzobjekt, das neben Dir liegt oder in Deinem Inventar ist
+
+BESCHREIBUNG:
+    Trotz gruendlichen Tests kommt es immer mal wieder dazu, dass eine
+    Syntax Probleme verursacht. Solche Stellen koennen mit diesem Kommando
+    gemeldet werden.
+    
+    Fuer den Magier ist es sehr hilfreich, wenn Du bei in Meldung angibst,
+    wo genau das Problem zu finden ist (also z.B, bei welchem Kommandoverb
+    du auf welchen Teil der Syntax nicht kommst.
+
+    Wenn Du ein Syntaxproblem an einem bestimmten Objekt oder NPC entdeckst, 
+    kannst Du dieses/diesen hinter einem Doppelpunkt angeben, damit der fuer
+    das Objekt verantwortliche Magier die Meldung bekommt. Wenn das Objekt
+    nicht zu finden ist, wird die ganze Eingabe als Meldung aufgefasst.
+
+BEMERKUNG:
+    Der Befehl 'syntax' bezieht sich bei Nichtangabe eines Bezugsobjekts
+    auf das letzte betrachtete Objekt. Hast Du also ein Objekt untersucht,
+    dann wird die Meldung fuer dieses Objekt abgegeben. Hast Du aber den
+    Raum untersucht oder 'schau' eingegeben, wird die Meldung fuer Deinen
+    momentanen Raum abgesetzt.
+
+SIEHE AUCH:
+    bug, idee, typo, detail, bezugsobjekt
+
+Letzte Aenderung: 16.06.2017, Bugfix
diff --git a/doc/pcmd/typo b/doc/pcmd/typo
index 6470489..a7afce7 100644
--- a/doc/pcmd/typo
+++ b/doc/pcmd/typo
@@ -41,8 +41,6 @@
     momentanen Raum abgesetzt.
 
 SIEHE AUCH:
-    bug, idee, detail, bezugsobjekt
+    bug, idee, syntaxhinweis, detail, bezugsobjekt
 
-LETZTE AeNDERUNG:
-    03.06.2013, Zesstra
-
+Letzte Aenderung: 16.06.2017, Bugfix
diff --git a/obj/tools/fehlerteufel.c b/obj/tools/fehlerteufel.c
index da1a7e2..c892cfb 100644
--- a/obj/tools/fehlerteufel.c
+++ b/obj/tools/fehlerteufel.c
@@ -299,7 +299,8 @@
     case "alles":
     case "alle":
       lmodus = T_RTERROR | T_RTWARN | T_CTERROR | T_CTWARN | T_REPORTED_ERR
-               | T_REPORTED_IDEA | T_REPORTED_TYPO | T_REPORTED_MD;
+               | T_REPORTED_IDEA | T_REPORTED_TYPO | T_REPORTED_MD | 
+               T_REPORTED_SYNTAX;
       break;
     case "fehler":
     case "error":
@@ -334,6 +335,11 @@
     case "typos":
       lmodus=T_REPORTED_TYPO;
       break;
+    case "syntax":
+    case "syntaxhinweis":
+    case "syntaxhinweise":
+      lmodus=T_REPORTED_SYNTAX;
+      break;
     case "laufzeitwarnungen":
     case "runtimewarnings":
       lmodus=T_RTWARN;
@@ -361,6 +367,8 @@
       return ({"fehlende Detail","fehlende Details","Dieses fehlende Detail"});
     case T_REPORTED_TYPO:
       return ({"Typo","Typos","Dieser Typo"});
+    case T_REPORTED_SYNTAX:
+      return ({"Syntaxhinweis","Syntaxhinweise","Dieser Syntaxhinweis"});
     case T_RTWARN:
       return ({"Laufzeitwarnung","Laufzeitwarnungen","Diese Laufzeitwarnung"});
     case T_CTWARN:
@@ -578,6 +586,8 @@
       modstr+=({"fehlende Details"});
   if (modus & T_REPORTED_TYPO)
       modstr+=({"Typo"});
+  if(modus&T_REPORTED_SYNTAX)
+    modstr+=({"Syntaxhinweise"});
 
   tell_object(PL, break_string(
       "Dein Fehlerteufel wird Dir nun ueber aufgetretene "
diff --git a/secure/errord.c b/secure/errord.c
index 1eefbd3..6ce0759 100644
--- a/secure/errord.c
+++ b/secure/errord.c
@@ -340,7 +340,8 @@
 }
 
 
-// loggt einen T_REPORTED_ERR, T_REPORTED_IDEA, T_REPORTED_TYPO, T_REPORTED_MD
+// loggt einen T_REPORTED_ERR, T_REPORTED_IDEA, T_REPORTED_TYPO,
+// T_REPORTED_MD, T_REPORTED_SYNTAX
 public string LogReportedError(mapping err)
 {
     //darf nur von Spielershells oder Fehlerteufel gerufen werden.
@@ -1235,6 +1236,9 @@
     case T_REPORTED_MD:
       label=({"Fehlendes Detail","Dieses fehlende Detail"});
       break;
+    case T_REPORTED_SYNTAX:
+      label=({"Syntaxproblem","Dieses Syntaxproblem"});
+      break;
     case T_RTWARN:
       label=({"Laufzeitwarnung","Diese Laufzeitwarnung"});
       break;
@@ -1287,6 +1291,9 @@
     case T_REPORTED_MD:
       label=({"Fehlendes Detail","Dieses fehlende Detail"});
       break;
+    case T_REPORTED_SYNTAX:
+      label=({"Syntaxproblem","Dieses Syntaxproblem"});
+      break;
     case T_RTWARN:
       label=({"Laufzeitwarnung","Diese Laufzeitwarnung"});
       break;
@@ -1437,7 +1444,8 @@
   // Erledigung informiert, wenn deren letzter Logout weniger als 180 Tage her
   // ist.
   if ( (issue->type &
-        (T_REPORTED_ERR|T_REPORTED_TYPO|T_REPORTED_IDEA|T_REPORTED_MD))
+        (T_REPORTED_ERR|T_REPORTED_TYPO|T_REPORTED_IDEA|T_REPORTED_MD|
+        T_REPORTED_SYNTAX))
       && issue->titp
       && recent_lastlogout(issue->titp, time() - 15552000) )
   {
diff --git a/secure/errord.h b/secure/errord.h
index bd82301..2d4dbed 100644
--- a/secure/errord.h
+++ b/secure/errord.h
@@ -18,9 +18,10 @@
 #define T_REPORTED_TYPO  32   // von Spielern gemeldete Typos
 #define T_REPORTED_IDEA  64   // von Spielern gemeldete Ideen 
 #define T_REPORTED_MD    128  // von Spielern gemeldete fehlende Details
+#define T_REPORTED_SYNTAX 256 // Von Spielern gemeldete Syntaxprobleme
 #define ALL_ERR_TYPES ({T_RTERROR, T_RTWARN, T_CTERROR, T_CTWARN, \
                         T_REPORTED_ERR, T_REPORTED_TYPO, T_REPORTED_IDEA, \
-                        T_REPORTED_MD })
+                        T_REPORTED_MD, T_REPORTED_SYNTAX })
 
 // Status
 #define STAT_DELETED  0x1
diff --git a/std/player/base.c b/std/player/base.c
index af06844..397d711 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -1274,11 +1274,13 @@
  *-----------------------------------------------------------------
  */
 static int fehlerhilfe(string str) {
-  write("Welche Art von Fehler moechtest Du denn melden?\n"
+  ReceiveMsg("Welche Art von Fehler moechtest Du denn melden?\n"
       "Fehlfunktionen    ->  bug\n"
       "Ideen/Anregungen  ->  idee\n"
       "Tippfehler/Typos  ->  typo\n"
-      "fehlende Details  ->  detail\n");
+      "fehlende Details  ->  detail\n"
+      "Syntax-Probleme   ->  syntaxhinweis",
+      MT_NOTIFICATION|MSG_BS_LEAVE_LFS);
 
   return 1;
 }
@@ -1384,6 +1386,10 @@
       pl_msg = "Wie sieht der Fehler denn aus?\n";
       error_type = "BUGS";
       break;
+    case "syntaxhinweis":
+      pl_msg = "Mit welcher Syntax gibt es denn was fuer Probleme?\n";
+      error_type = "SYNTAX";
+      break;
   }
 
   // Hat der Spieler etwas eingegeben, wird die Eingabe direkt an die Hilfs-
@@ -1432,6 +1438,10 @@
       desc="einen Typo";
       err[F_TYPE]=T_REPORTED_TYPO;
       break;
+    case "SYNTAX":
+      desc="einen Syntaxhinweis";
+      err[F_TYPE]=T_REPORTED_SYNTAX;
+      break;
   }
 
   // Eintragung in die Fehler-DB
@@ -4032,6 +4042,7 @@
            ({"fehler","fehlerhilfe",0,0}),
            ({"md","ReportError",0,0}),
            ({"detail","ReportError",0,0}),
+           ({"syntaxhinweis","ReportError",0,0}),
            ({"vorsicht","toggle_whimpy",0,0}),
            ({"stop","stop",0,0}),
            ({"kwho","kwho",0,0}),
