      DEBUG("Presence From $from t=$type s=$status");
      DEBUG("Presence XML: " . $presence->GetXML());
  }
-@@ -896,7 +929,8 @@
+@@ -896,7 +931,8 @@
  Assures message size does not exceed a limit and chops it into pieces if need be.
  
  NOTE: non-printable characters (unicode included) will be stripped before sending to the server via:

 
 =cut
 
@@ -989,7 +1023,8 @@
 
     # Strip out anything that's not a printable character
     # Now with unicode support?

                                   );
 
     $self->forum_join_time->{$forum_name} = time;
@@ -497,7 +516,9 @@
     my $last_background = time - $time_between_background_routines - 1; # Call background process every so often...
     my $counter = 0; # Keep track of how many times we've looped. Not sure if we'll use this long term.
 
-    while(1) { # Loop for ever!
+    my $watchdog = 10; # Loop limit
+
+    while($watchdog > 0) { # Loop for ever!^W^W until limit
         # Process and re-connect if you have to.
         my $reconnect_timeout = 1;
         eval {$self->Process($process_timeout)};
@@ -649,21 +670,7 @@
 
     # Determine if this message was addressed to me. (groupchat only)
     my $bot_address_from;
