diff --git a/PlayBot/sessions/irc.pm b/PlayBot/sessions/irc.pm
index 1df7d1fdb48978b9a439c45c6ba602855f5abd3a..bafdffad4bac9c5cf50936ee83b3940b607281c4 100644
--- a/PlayBot/sessions/irc.pm
+++ b/PlayBot/sessions/irc.pm
@@ -257,9 +257,10 @@ sub on_invite {
 }
 
 sub external_parse {
-    my ( $user, $chan, $msg ) = shift;
+    my ( $user, $chan, $msg ) = @_;
+    $msg =~ tr/'"/_/;
 
-    my $content = `./PlayBot-cli "$user" "$chan" "$msg"`;
+    my $content = `./PlayBot-cli '$chan' '$user' '$msg'`;
     if ( $? >> 8 != 0 ) {
         die "Error";
     }
@@ -288,10 +289,10 @@ sub on_speak {
     my %content;
 
     eval {
-        %content = external_parse($user, lc $chan->[0], $msg);
+        %content = external_parse($nick, lc $chan->[0], $msg);
         $irc->yield(
-            privmsg => $chan => PlayBot::utils::print::print($content) );
-    }
+            privmsg => $chan => PlayBot::utils::print::print(\%content) );
+    };
     if ($@) {
         # first we check for url
         PlayBot::sites::parse(@args);