ssl      => Irssi::settings_get_bool("twirssi_avoid_ssl") ? 0 : 1,
     );
 
+    unless ($twit) {
+        ¬ice("Failed to create Net::$service object!  Aborting.");
+        return;
+    }
+
+    if ( my $timeout = Irssi::settings_get_int("twitter_timeout") and $twit->can('ua')) {
+        $twit->ua->timeout($timeout);
+    }
+
     unless ( $twit->verify_credentials() ) {
         ¬ice("Login as $user\@$service failed");
         $twit = undef;
     ".irssi/scripts/twirssi.json" );
 
 Irssi::settings_add_int( "twirssi", "twitter_friends_poll", 600 );
+Irssi::settings_add_int( "twirssi", "twitter_timeout", 30 );
 
 Irssi::settings_add_bool( "twirssi", "twirssi_upgrade_beta",      0 );
 Irssi::settings_add_bool( "twirssi", "tweet_to_away",             0 );
             sub { ¬ice("Device updated to $_[0]"); }
         )
     );
+    Irssi::command_bind(
+        "twitter_block",
+        &gen_cmd(
+            "/twitter_block <username>",
+            "create_block",
+            sub { ¬ice("Blocked $_[0]"); }
+        )
+    );
+    Irssi::command_bind(
+        "twitter_unblock",
+        &gen_cmd(
+            "/twitter_unblock <username>",
+            "destroy_block",
+            sub { ¬ice("Unblock $_[0]"); }
+        )
+    );
     Irssi::signal_add_last( 'complete word' => \&sig_complete );
 
     ¬ice("  %Y<%C(%B^%C)%N                   TWIRSSI v%R$VERSION%N (r$REV)");