diff --git a/lib/commands/fav.pm b/lib/commands/fav.pm
index c8639f4f505f82fc3ada54872bf5a7e4bd7b0f8b..278b4255dde4f4d6dc6fbc84cd8dbdeba07b0513 100644
--- a/lib/commands/fav.pm
+++ b/lib/commands/fav.pm
@@ -4,11 +4,10 @@ require Exporter;
 our @ISA = qw(Exporter);
 our @EXPORT_OK = qw(exec);
 
-our $irc;
 our $dbh;
 
 sub exec {
-    my $id = shift;
+    my ($nick, $id) = @_;
 
     my $sth = $dbh->prepare_cached('SELECT user FROM playbot_codes WHERE nick = ?');
     $sth->execute($nick)
@@ -23,3 +22,5 @@ sub exec {
 	        or $log->error("Couldn't finish transaction: " . $dbh->errstr);
     }
 }
+
+1;
diff --git a/lib/commands/parser.pm b/lib/commands/parser.pm
index 70a26450198a304fec25528fa2a23546c3d372ca..73d285b2884d813d1ed69a50c83a435f52041697 100644
--- a/lib/commands/parser.pm
+++ b/lib/commands/parser.pm
@@ -19,10 +19,11 @@ sub exec {
 	my ($kernel, $user, $chan, $msg) = @_;
 	my ($nick,$mask) = split(/!/,$user);
 
-    if ($msg =~ /^!fav( ([0-9]+))?/) {
-        $commands::fav::irc = $irc;
+    if ($msg =~ /^!fav(?: ([0-9]+))?/) {
+        $id = ($1) ? $1 : $lastID;
+
         $commands::fav::dbh = $dbh;
-        commands::fav::exec($2)
+        commands::fav::exec($nick, $id)
 	}
 	elsif ($msg =~ /^!later(?: ([0-9]+))?(?: in ([0-9]*)?(h|m|s)?)?/) {
         my $id = ($1) ? $1 : $lastID;