any timeout exceptions were preventing the message from getting forwarded to the next destination...
also changed the forwarding to a threaded model
this code needs a refactoring though, when i get time