diff --git a/mpd/base.py b/mpd/base.py
index <HASH>..<HASH> 100644
--- a/mpd/base.py
+++ b/mpd/base.py
@@ -117,9 +117,12 @@ class mpd_commands(object):
     callback.
     """
 
-    def __init__(self, *commands, is_direct=False):
+    def __init__(self, *commands, **kwargs):
         self.commands = commands
-        self.is_direct = is_direct
+        self.is_direct = kwargs.pop('is_direct', False)
+        if kwargs:
+            raise AttributeError("mpd_commands() got unexpected keyword"
+                    " arguments %s" % ",".join(kwargs))
 
     def __call__(self, ob):
         ob.mpd_commands = self.commands
asyncio base modifications: Restore Python 2 compatibility

The (*args, key=word) syntax was introduced with PEP <I>; this works
around the missing syntax by using **kwargs; the additional check is
required to avoid silently ignoring arguments.