diff --git a/src/chat_control.py b/src/chat_control.py
index dc259dfbef323140c3cfdaf130b7c29b7e69881a..66e13114b2ae7aa2072f0e3dddb1b0a1eeb12514 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -82,8 +82,6 @@ class ChatControlBase(MessageControl, CommonCommands):
 	'''A base class containing a banner, ConversationTextview, MessageTextView
 	'''
 
-	DISPATCHED_BY = CommonCommands
-
 	def make_href(self, match):
 		url_color = gajim.config.get('urlmsgcolor')
 		return '<a href="%s"><span color="%s">%s</span></a>' % (match.group(),
diff --git a/src/commands/framework.py b/src/commands/framework.py
index c5a2fe84c443e93741f687b246b1fe9cdd9795e8..86e890db92ace7dbc61acb29cac7c9f1f2665b93 100644
--- a/src/commands/framework.py
+++ b/src/commands/framework.py
@@ -27,12 +27,11 @@ class CommandInternalError(Exception):
 
 class CommandError(Exception):
     def __init__(self, message=None, command=None, name=None):
+        self.command = command
+        self.name = name
+
         if command:
-            self.command = command
             self.name = command.first_name
-        elif name:
-            self.command = None
-            self.name = name
 
         if message:
             super(CommandError, self).__init__(message)
@@ -343,7 +342,7 @@ class CommandProcessor(object):
 
     # Quite complex piece of regular expression logic.
     ARG_PATTERN = re.compile(r'(\'|")?(?P<body>(?(1).+?|\S+))(?(1)\1)')
-    OPT_PATTERN = re.compile(r'--?(?P<key>[\w-]+)(?:(?:=|\s)(\'|")?(?P<value>(?(2)[^-]+?|[^-\s]+))(?(2)\2))?')
+    OPT_PATTERN = re.compile(r'(?<!\w)--?(?P<key>[\w-]+)(?:(?:=|\s)(\'|")?(?P<value>(?(2)[^-]+?|[^-\s]+))(?(2)\2))?')
 
     EXPAND_SHORT_OPTIONS = True
 
@@ -509,7 +508,7 @@ class CommandProcessor(object):
             return False
 
         text = text[len(self.COMMAND_PREFIX):]
-        text = text.lstrip()
+        text = text.strip()
 
         parts = text.split(' ', 1)
 
diff --git a/src/commands/middleware.py b/src/commands/middleware.py
index a0db07bdd71fcf5a3ddb5fe0f25068f4efb9ae67..839c82c3ee2af2bc9ee0694cb48aa83bc841553d 100644
--- a/src/commands/middleware.py
+++ b/src/commands/middleware.py
@@ -19,7 +19,6 @@ would be dropped in. Defines a little bit of scaffolding to support interaction
 between the two and a few utility methods so you don't need to dig up the host
 code to write basic commands.
 """
-
 from types import StringTypes
 from framework import CommandProcessor, CommandError
 from traceback import print_exc