Index: perl/lib/BarnOwl/ModuleLoader.pm
===================================================================
--- perl/lib/BarnOwl/ModuleLoader.pm	(revision 9506feb5f9b60923b238391bf47561724e09bd2a)
+++ perl/lib/BarnOwl/ModuleLoader.pm	(revision b0c8011c53aca2ee3a18f07e779400df969cbdb3)
@@ -48,5 +48,5 @@
     BarnOwl::new_command('reload-modules', sub {BarnOwl::ModuleLoader->reload}, {
                            summary => 'Reload all modules',
-                           usage   => 'reload',
+                           usage   => 'reload-modules',
                            description => q{Reloads all modules located in ~/.owl/modules and the system modules directory}
                           });
Index: perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
===================================================================
--- perl/modules/IRC/lib/BarnOwl/Module/IRC.pm	(revision b10f3400cf15bee61a55e3f0f48badba122a58c7)
+++ perl/modules/IRC/lib/BarnOwl/Module/IRC.pm	(revision b0c8011c53aca2ee3a18f07e779400df969cbdb3)
@@ -84,11 +84,23 @@
 
 sub register_commands {
-    BarnOwl::new_command('irc-connect' => \&cmd_connect);
+    BarnOwl::new_command('irc-connect' => \&cmd_connect,
+                       {
+                           summary      => 'Connect to an IRC server',
+                           usage        => 'irc-connect [-a ALIAS ] [-s] [-p PASSWORD] [-n NICK] SERVER [port]',
+                           description  =>
+
+                           "Connect to an IRC server. Supported options are\n\n" .
+                           "-a <alias>          Define an alias for this server\n" .
+                           "-s                  Use SSL\n" .
+                           "-p <password>       Specify the password to use\n" .
+                           "-n <nick>           Use a non-default nick"
+                       });
     BarnOwl::new_command('irc-disconnect' => \&cmd_disconnect);
-    BarnOwl::new_command('irc-msg'     => \&cmd_msg);
-    BarnOwl::new_command('irc-join'    => \&cmd_join);
-    BarnOwl::new_command('irc-part'    => \&cmd_part);
-    BarnOwl::new_command('irc-nick'    => \&cmd_nick);
-    BarnOwl::new_command('irc-names'   => \&cmd_names);
+    BarnOwl::new_command('irc-msg'        => \&cmd_msg);
+    BarnOwl::new_command('irc-join'       => \&cmd_join);
+    BarnOwl::new_command('irc-part'       => \&cmd_part);
+    BarnOwl::new_command('irc-nick'       => \&cmd_nick);
+    BarnOwl::new_command('irc-names'      => \&cmd_names);
+    BarnOwl::new_command('irc-whois'      => \&cmd_whois);
 }
 
@@ -119,14 +131,20 @@
             "ssl"        => \$ssl,
             "password=s" => \$password,
-            "port=i"     => \$port,
             "nick=s"     => \$nick,
         );
         $host = shift @ARGV or die("Usage: $cmd HOST\n");
         if(!$alias) {
-            $alias = $1 if $host =~ /^(?:irc[.])?(\w+)[.]\w+$/;
-            $alias ||= $host;
+            if($host =~ /^(?:irc[.])?(\w+)[.]\w+$/) {
+                $alias = $1;
+            } else {
+                $alias = $host;
+            }
         }
-        $port ||= 6667;
+        $port = shift @ARGV || 6667;
         $ssl ||= 0;
+    }
+
+    if(exists $ircnets{$alias}) {
+        die("Already connected to a server with alias '$alias'. Either disconnect or specify an alias with -a.\n");
     }
 
@@ -198,5 +216,5 @@
     my $cmd = shift;
     my $conn = get_connection(\@_);
-    my $chan = get_channel(\@_) || die("Usage: $cmd <channel>");
+    my $chan = get_channel(\@_) || die("Usage: $cmd <channel>\n");
     $conn->part($chan);
 }
@@ -205,5 +223,5 @@
     my $cmd = shift;
     my $conn = get_connection(\@_);
-    my $nick = shift or die("Usage: $cmd <new nick>");
+    my $nick = shift or die("Usage: $cmd <new nick>\n");
     $conn->nick($nick);
 }
@@ -212,6 +230,13 @@
     my $cmd = shift;
     my $conn = get_connection(\@_);
-    my $chan = get_channel(\@_) || die("Usage: $cmd <channel>");
+    my $chan = get_channel(\@_) || die("Usage: $cmd <channel>\n");
     $conn->names($chan);
+}
+
+sub cmd_whois {
+    my $cmd = shift;
+    my $conn = get_connection(\@_);
+    my $who = shift || die("Usage: $cmd <user>\n");
+    $conn->whois($who);
 }
 
