diff --git a/man/ganeti.rst b/man/ganeti.rst
index 52721d491f8d56248c9525f00174e0e50e5a8f3c..90399f881de83d2cf60918ff934820257762f3b2 100644
--- a/man/ganeti.rst
+++ b/man/ganeti.rst
@@ -185,7 +185,7 @@ list**, **gnt-debug locks**, etc.). For these commands, special states
 are denoted via a special symbol (in terse mode) or a string (in
 verbose mode):
 
-*, (offline)
+\*, (offline)
     The node in question is marked offline, and thus it cannot be
     queried for data. This result is persistent until the node is
     de-offlined.
@@ -224,6 +224,69 @@ behaviour)::
   # gnt-instance modify -H kernel_path=an\\,example instance1
   # gnt-instance modify -H kernel_path='an\,example' instance1
 
+Query filters
+~~~~~~~~~~~~~
+
+Most commands listing resources (e.g. instances or nodes) support filtering.
+The filter language is similar to Python expressions with some elements from
+Perl. The language is not generic. Each condition must consist of a field name
+and a value (except for boolean checks), a field can not be compared to another
+field. Keywords are case-sensitive.
+
+Syntax in pseudo-BNF::
+
+  <quoted-string> ::= /* String quoted with single or double quotes,
+                         backslash for escaping */
+
+  <integer> ::= /* Number in base-10 positional notation */
+
+  <re> ::= /* Regular expression */
+
+  /*
+    Modifier "i": Case-insensitive matching, see
+    http://docs.python.org/library/re#re.IGNORECASE
+
+    Modifier "s": Make the "." special character match any character,
+    including newline, see http://docs.python.org/library/re#re.DOTALL
+  */
+  <re-modifiers> ::= /* empty */ | i | s
+
+  <value> ::= <quoted-string> | <integer>
+
+  <condition> ::=
+    { /* Value comparison */
+      <field> { == | != } <value>
+
+      /* Collection membership */
+      | <value> [ not ] in <field>
+
+      /* Regular expressions (recognized delimiters
+         are "/", "#", "^", and "|"; backslash for escaping)
+      */
+      | <field> { =~ | !~ } m/<re>/<re-modifiers>
+
+      /* Boolean */
+      | <field>
+    }
+
+  <filter> ::=
+    { [ not ] <condition> | ( <filter> ) }
+    [ { and | or } <filter> ]
+
+Operators:
+
+*==*
+  Equality
+*!=*
+  Inequality
+*=~*
+  Pattern match using regular expression
+*!~*
+  Logically negated from *=~*
+*in*, *not in*
+  Collection membership and negation
+
+
 Common daemon functionality
 ---------------------------