Index: /trunk/Phergie/Driver/Streams.php
===================================================================
--- /trunk/Phergie/Driver/Streams.php	(revision 71)
+++ /trunk/Phergie/Driver/Streams.php	(revision 76)
@@ -199,5 +199,5 @@
                         array_unshift($args, $target);
                     } else {
-                        $args = explode(' :', $args);
+                        $args = explode(' :', $args, 2);
                     }
                     break;
Index: /trunk/Phergie/Plugin/Karma.php
===================================================================
--- /trunk/Phergie/Plugin/Karma.php	(revision 71)
+++ /trunk/Phergie/Plugin/Karma.php	(revision 76)
@@ -74,4 +74,5 @@
             'mc2' => 'mc2 has karma of e',
             'mc²' => 'mc² has karma of e',
+            'i' => 'I haz big karma',
         );
 
@@ -118,7 +119,10 @@
         $source = $this->event->getSource();
         $message = $this->event->getArgument(1);
-            // Karma status request
-        if (preg_match('#^karma (\S+?)$#i', $message, $m)) {
+
+		// Karma status request
+        if (preg_match('#^karma (.+)$#i', $message, $m)) {
             $term = strtolower($m[1]);
+            // Replaces multiple spaces by one
+            $term = preg_replace('#\s+#', ' ', $term);
             // Return fixed value if set
             if (isset ($this->fixedKarma[$term])) {
@@ -134,7 +138,18 @@
             }
         // Incrementation/decrementation request
-        } elseif (preg_match('#^(\S+?)(\+\+|--)\s*(.*)$#i', $message, $m)) {
+        } elseif (preg_match('#^(\S+?|\(.+?\)+)(\+{2,}|-{2,})(?: \s+(.*))?$#i', $message, $m)) {
             $word = strtolower($m[1]);
-            // Do nothing if the karma fixed
+            // Strip parenthesis grouping multiple words
+            if(substr($word, 0, 1) === '(' && substr($word, -1) === ')') {
+            	$word = substr($word, 1, -1);
+            } else { // Add trailing + or -'s
+            	if(strlen($m[2]) > 2) {
+            		$word .= substr($m[2], 2);
+            		$m[2] = substr($m[2], -2);
+            	}
+            }
+            // Replaces multiple spaces by one
+            $word = preg_replace('#\s+#', ' ', $word);
+            // Do nothing if the karma is fixed
             if (isset($this->fixedKarma[$word])) {
                 return;
Index: /trunk/Phergie/Plugin/Quit.php
===================================================================
--- /trunk/Phergie/Plugin/Quit.php	(revision 59)
+++ /trunk/Phergie/Plugin/Quit.php	(revision 76)
@@ -27,3 +27,8 @@
         $this->doQuit('by request of ' . $this->event->getNick());
     }
+
+    public function onDoDie()
+    {
+        $this->doQuit('bows to ' . $this->event->getNick() .' and commits seppuku');
+    }
 }
Index: /trunk/Phergie/Plugin/Tld.php
===================================================================
--- /trunk/Phergie/Plugin/Tld.php	(revision 71)
+++ /trunk/Phergie/Plugin/Tld.php	(revision 76)
@@ -296,4 +296,7 @@
         'zm' => 'Zambia',
         'zw' => 'Zimbabwe',
+        // Pranks
+        'spoon' => 'Don\'t you know ? There is no spoon !',
+        'poo' => 'Do you really think that\'s funny ?',
     );
 
