[Pkg-cli-apps-commits] [smuxi] 01/07: Imported Upstream version 0.10

Mirco Bauer meebey at moszumanska.debian.org
Mon Dec 16 08:49:33 UTC 2013


This is an automated email from the git hooks/post-receive script.

meebey pushed a commit to branch master
in repository smuxi.

commit 76c7e84a15d18e709254c37f92d785f1cf31de0a
Author: Mirco Bauer <meebey at meebey.net>
Date:   Mon Dec 16 09:02:04 2013 +0100

    Imported Upstream version 0.10
---
 BUGS                                               |   13 +-
 HACKING                                            |   98 ++
 Makefile.am                                        |   26 +-
 Makefile.in                                        |   33 +-
 README => README.md                                |   39 +-
 TODO                                               |    8 +-
 aclocal.m4                                         |  105 +-
 compile                                            |  347 +++++
 configure                                          |  423 +++++-
 configure.ac                                       |   38 +-
 glade/smuxi-frontend-gnome.glade                   |    5 +-
 lib/JabbR/JabbR.Client/JabbRClient.cs              |    6 -
 lib/Makefile.in                                    |    3 +-
 .../Http/DefaultHttpClient.cs                      |   33 +-
 .../Http/IHttpClient.cs                            |    6 +-
 .../Http/IHttpClientExtensions.cs                  |    4 +-
 .../Transports/HttpBasedTransport.cs               |   18 +-
 .../LongPolling/PollingRequestHandler.cs           |    7 +-
 .../Transports/ServerSentEventsTransport.cs        |    3 +-
 .../Transports/TransportHelper.cs                  |    2 +-
 lib/SmartIrc4net/SmartIrc4net.csproj               |    1 +
 lib/SmartIrc4net/src/AssemblyInfo.cs               |    4 +-
 lib/SmartIrc4net/src/IrcClient/IrcClient.cs        |   12 +-
 .../src/IrcConnection/IrcConnection.cs             |   37 +-
 lib/SmartIrc4net/src/Logger.cs                     |  195 +--
 lib/Twitterizer/CommonAssemblyInfo.cs              |    6 +-
 .../Methods/List/DestroyListSubscriber.cs          |    7 +-
 .../Methods/List/ListMembershipsCommand.cs         |   10 +-
 .../Twitterizer2/Methods/List/TwitterList.cs       |   10 +-
 .../Twitterizer2/Methods/Search/SearchCommand.cs   |   25 +-
 .../Twitterizer2/Methods/Search/SearchOptions.cs   |   30 +-
 .../Twitterizer2/Methods/Search/TwitterSearch.cs   |    2 -
 .../Methods/Search/TwitterSearchResult.cs          |  174 ---
 .../Search/TwitterSearchResultCollection.cs        |   81 +-
 .../Methods/Timeline/TwitterTimeline.cs            |    1 -
 .../Methods/User/LookupUsersOptions.cs             |    1 -
 .../Twitterizer2/OAuth/WebRequestBuilder.cs        |    4 +-
 .../Twitterizer2/Properties/AssemblyInfo.cs        |    3 -
 lib/Twitterizer/Twitterizer2/Twitterizer2.csproj   |    1 -
 .../Handler.cs => Exceptions/StartTlsException.cs} |   18 +-
 lib/agsxmpp/agsxmpp/IqGrabber.cs                   |   79 +-
 lib/agsxmpp/agsxmpp/Net/BaseSocket.cs              |    2 +
 lib/agsxmpp/agsxmpp/Net/ClientSocket.cs            |    2 +
 lib/agsxmpp/agsxmpp/Sasl/SaslHandler.cs            |   23 +-
 lib/agsxmpp/agsxmpp/Xml/Dom/DomLoader.cs           |    2 +-
 lib/agsxmpp/agsxmpp/Xml/StreamParser.cs            |   46 +-
 lib/agsxmpp/agsxmpp/XmppClientConnection.cs        |  185 ++-
 lib/agsxmpp/agsxmpp/XmppComponentConnection.cs     |   26 +-
 lib/agsxmpp/agsxmpp/XmppConnection.cs              |   11 +-
 lib/agsxmpp/agsxmpp/agsxmpp.csproj                 |    2 +
 lib/agsxmpp/agsxmpp/protocol/Base/Stanza.cs        |   20 -
 .../agsxmpp/protocol/Base/StanzaWithError.cs       |   48 +-
 lib/agsxmpp/agsxmpp/protocol/client/Error.cs       |   98 --
 lib/agsxmpp/agsxmpp/protocol/client/Handler.cs     |   16 +-
 lib/agsxmpp/agsxmpp/protocol/client/IQ.cs          |   25 +-
 lib/agsxmpp/agsxmpp/protocol/client/Message.cs     |   25 +-
 lib/agsxmpp/agsxmpp/protocol/client/Presence.cs    |   25 +-
 lib/agsxmpp/agsxmpp/protocol/component/Error.cs    |   12 -
 lib/agsxmpp/agsxmpp/protocol/component/Handler.cs  |    2 +-
 .../extensions/bookmarks/BookmarkManager.cs        |   64 +-
 .../protocol/extensions/pubsub/PubSubManager.cs    |  436 ++----
 .../agsxmpp/protocol/iq/disco/DiscoManager.cs      |   93 +-
 .../agsxmpp/protocol/iq/privacy/PrivacyManager.cs  |   58 +-
 lib/agsxmpp/agsxmpp/protocol/sasl/Failure.cs       |    4 +
 .../agsxmpp/protocol/sasl/FailureCondition.cs      |    5 +
 lib/agsxmpp/agsxmpp/protocol/x/muc/MucManager.cs   |  460 ++-----
 mono.m4                                            |   14 +
 po-Engine-Campfire/LINGUAS                         |    4 +
 po-Engine-Campfire/POTFILES.skip                   |    3 +-
 po-Engine-Campfire/cs.po                           |   38 +-
 po-Engine-Campfire/da.po                           |   38 +-
 po-Engine-Campfire/de.po                           |   38 +-
 po-Engine-Campfire/{sv.po => es.po}                |   68 +-
 po-Engine-Campfire/{zh_CN.po => fa.po}             |   69 +-
 po-Engine-Campfire/fi.po                           |   40 +-
 po-Engine-Campfire/fr.po                           |   49 +-
 po-Engine-Campfire/pt_BR.po                        |   40 +-
 po-Engine-Campfire/sv.po                           |   45 +-
 po-Engine-Campfire/{sv.po => te.po}                |   69 +-
 po-Engine-Campfire/{pt_BR.po => tr.po}             |   69 +-
 po-Engine-Campfire/zh_CN.po                        |   38 +-
 po-Engine-IRC/LINGUAS                              |    2 +
 po-Engine-IRC/POTFILES.skip                        |    3 +-
 po-Engine-IRC/cs.po                                |  148 +-
 po-Engine-IRC/da.po                                |  148 +-
 po-Engine-IRC/de.po                                |  148 +-
 po-Engine-IRC/es.po                                |  293 ++--
 po-Engine-IRC/fa.po                                |  368 +++++
 po-Engine-IRC/fi.po                                |  148 +-
 po-Engine-IRC/fr.po                                |  148 +-
 po-Engine-IRC/pt_BR.po                             |  213 +--
 po-Engine-IRC/sv.po                                |  183 +--
 po-Engine-IRC/te.po                                |  368 +++++
 po-Engine-IRC/tr.po                                |  272 ++--
 po-Engine-IRC/zh_CN.po                             |  150 +--
 {po-Engine-Campfire => po-Engine-JabbR}/LINGUAS    |    4 +
 po-Engine-JabbR/Makefile.in.in                     |  218 +++
 po-Engine-JabbR/POTFILES.in                        |    1 +
 {po-Server => po-Engine-JabbR}/POTFILES.skip       |    9 +-
 po-Engine-JabbR/cs.po                              |   58 +
 po-Engine-JabbR/da.po                              |   58 +
 po-Engine-JabbR/de.po                              |   58 +
 po-Engine-JabbR/es.po                              |   58 +
 po-Engine-JabbR/fa.po                              |   56 +
 po-Engine-JabbR/fi.po                              |   56 +
 po-Engine-JabbR/fr.po                              |   57 +
 po-Engine-JabbR/pt_BR.po                           |   56 +
 po-Engine-JabbR/sv.po                              |   58 +
 po-Engine-JabbR/te.po                              |   56 +
 po-Engine-JabbR/tr.po                              |   56 +
 po-Engine-JabbR/zh_CN.po                           |   57 +
 po-Engine-Twitter/LINGUAS                          |    2 +
 po-Engine-Twitter/POTFILES.skip                    |    3 +-
 po-Engine-Twitter/cs.po                            |  106 +-
 po-Engine-Twitter/da.po                            |  108 +-
 po-Engine-Twitter/de.po                            |  107 +-
 po-Engine-Twitter/es.po                            |  191 +--
 po-Engine-Twitter/{tr.po => fa.po}                 |  111 +-
 po-Engine-Twitter/fi.po                            |  108 +-
 po-Engine-Twitter/fr.po                            |  155 ++-
 po-Engine-Twitter/pt_BR.po                         |  108 +-
 po-Engine-Twitter/sv.po                            |  121 +-
 po-Engine-Twitter/{tr.po => te.po}                 |  111 +-
 po-Engine-Twitter/tr.po                            |  109 +-
 po-Engine-Twitter/zh_CN.po                         |  110 +-
 {po-Engine-Campfire => po-Engine-XMPP}/LINGUAS     |    4 +
 po-Engine-XMPP/Makefile.in.in                      |  218 +++
 po-Engine-XMPP/POTFILES.in                         |    1 +
 {po-Server => po-Engine-XMPP}/POTFILES.skip        |    7 +-
 po-Engine-XMPP/cs.po                               |  293 ++++
 po-Engine-XMPP/da.po                               |  293 ++++
 po-Engine-XMPP/de.po                               |  294 ++++
 po-Engine-XMPP/es.po                               |  293 ++++
 po-Engine-XMPP/fa.po                               |  292 ++++
 po-Engine-XMPP/fi.po                               |  292 ++++
 po-Engine-XMPP/fr.po                               |  293 ++++
 po-Engine-XMPP/pt_BR.po                            |  292 ++++
 po-Engine-XMPP/sv.po                               |  293 ++++
 po-Engine-XMPP/te.po                               |  292 ++++
 po-Engine-XMPP/tr.po                               |  292 ++++
 po-Engine-XMPP/zh_CN.po                            |  293 ++++
 po-Engine/LINGUAS                                  |    2 +
 po-Engine/POTFILES.in                              |    1 +
 po-Engine/POTFILES.skip                            |    3 +-
 po-Engine/cs.po                                    |  108 +-
 po-Engine/da.po                                    |  108 +-
 po-Engine/de.po                                    |  109 +-
 po-Engine/es.po                                    |  255 +++-
 po-Engine/{zh_CN.po => fa.po}                      |  207 +--
 po-Engine/fi.po                                    |  110 +-
 po-Engine/fr.po                                    |  108 +-
 po-Engine/pt_BR.po                                 |  122 +-
 po-Engine/sv.po                                    |  118 +-
 po-Engine/{zh_CN.po => te.po}                      |  209 +--
 po-Engine/tr.po                                    |  204 ++-
 po-Engine/zh_CN.po                                 |  108 +-
 po-Frontend-GNOME-IRC/LINGUAS                      |    4 +
 po-Frontend-GNOME-IRC/POTFILES.skip                |    3 +-
 po-Frontend-GNOME-IRC/cs.po                        |    6 +-
 po-Frontend-GNOME-IRC/da.po                        |    6 +-
 po-Frontend-GNOME-IRC/de.po                        |    6 +-
 po-Frontend-GNOME-IRC/es.po                        |   79 +-
 po-Frontend-GNOME-IRC/{de.po => fa.po}             |   46 +-
 po-Frontend-GNOME-IRC/{de.po => fi.po}             |   37 +-
 po-Frontend-GNOME-IRC/fr.po                        |   14 +-
 po-Frontend-GNOME-IRC/pt_BR.po                     |   46 +-
 po-Frontend-GNOME-IRC/sv.po                        |   13 +-
 po-Frontend-GNOME-IRC/{de.po => te.po}             |   44 +-
 po-Frontend-GNOME-IRC/{fr.po => tr.po}             |   49 +-
 po-Frontend-GNOME-IRC/zh_CN.po                     |    8 +-
 .../LINGUAS                                        |    4 +
 po-Frontend-GNOME-Twitter/Makefile.in.in           |  218 +++
 po-Frontend-GNOME-Twitter/POTFILES.in              |    1 +
 .../POTFILES.skip                                  |    4 +-
 po-Frontend-GNOME-Twitter/cs.po                    |   35 +
 po-Frontend-GNOME-Twitter/da.po                    |   35 +
 po-Frontend-GNOME-Twitter/de.po                    |   36 +
 po-Frontend-GNOME-Twitter/es.po                    |   35 +
 po-Frontend-GNOME-Twitter/fa.po                    |   34 +
 po-Frontend-GNOME-Twitter/fi.po                    |   34 +
 po-Frontend-GNOME-Twitter/fr.po                    |   35 +
 po-Frontend-GNOME-Twitter/pt_BR.po                 |   34 +
 po-Frontend-GNOME-Twitter/sv.po                    |   35 +
 po-Frontend-GNOME-Twitter/te.po                    |   34 +
 po-Frontend-GNOME-Twitter/tr.po                    |   34 +
 po-Frontend-GNOME-Twitter/zh_CN.po                 |   35 +
 po-Frontend-GNOME-XMPP/LINGUAS                     |    5 +
 po-Frontend-GNOME-XMPP/POTFILES.skip               |    3 +-
 po-Frontend-GNOME-XMPP/cs.po                       |   92 +-
 po-Frontend-GNOME-XMPP/da.po                       |   81 +-
 po-Frontend-GNOME-XMPP/de.po                       |   82 +-
 po-Frontend-GNOME-XMPP/es.po                       |   91 +-
 po-Frontend-GNOME-XMPP/fa.po                       |   41 +
 po-Frontend-GNOME-XMPP/fi.po                       |   41 +
 po-Frontend-GNOME-XMPP/fr.po                       |   81 +-
 po-Frontend-GNOME-XMPP/pt_BR.po                    |   41 +
 po-Frontend-GNOME-XMPP/sv.po                       |   85 +-
 po-Frontend-GNOME-XMPP/te.po                       |   41 +
 po-Frontend-GNOME-XMPP/tr.po                       |   41 +
 po-Frontend-GNOME-XMPP/zh_CN.po                    |   81 +-
 po-Frontend-GNOME/LINGUAS                          |    3 +
 po-Frontend-GNOME/POTFILES.skip                    |    3 +-
 po-Frontend-GNOME/cs.po                            |   61 +-
 po-Frontend-GNOME/da.po                            |   61 +-
 po-Frontend-GNOME/de.po                            |   63 +-
 po-Frontend-GNOME/es.po                            | 1410 +++++++++++---------
 po-Frontend-GNOME/{zh_CN.po => fa.po}              |  575 ++++----
 po-Frontend-GNOME/fi.po                            |   63 +-
 po-Frontend-GNOME/fr.po                            |   61 +-
 po-Frontend-GNOME/pt_BR.po                         |  269 ++--
 po-Frontend-GNOME/sv.po                            |   92 +-
 po-Frontend-GNOME/{zh_CN.po => te.po}              |  577 ++++----
 po-Frontend-GNOME/{zh_CN.po => tr.po}              |  574 ++++----
 po-Frontend-GNOME/zh_CN.po                         |   61 +-
 po-Frontend/LINGUAS                                |    4 +
 po-Frontend/POTFILES.skip                          |    3 +-
 po-Frontend/cs.po                                  |   18 +-
 po-Frontend/da.po                                  |   18 +-
 po-Frontend/de.po                                  |   18 +-
 po-Frontend/es.po                                  |  119 +-
 po-Frontend/{zh_CN.po => fa.po}                    |   58 +-
 po-Frontend/{da.po => fi.po}                       |   58 +-
 po-Frontend/fr.po                                  |   79 +-
 po-Frontend/pt_BR.po                               |   18 +-
 po-Frontend/sv.po                                  |   22 +-
 po-Frontend/{zh_CN.po => te.po}                    |   57 +-
 po-Frontend/{zh_CN.po => tr.po}                    |   55 +-
 po-Frontend/zh_CN.po                               |   22 +-
 po-Server/LINGUAS                                  |    4 +
 po-Server/POTFILES.skip                            |    3 +-
 po-Server/cs.po                                    |    4 +-
 po-Server/da.po                                    |    4 +-
 po-Server/de.po                                    |    4 +-
 po-Server/es.po                                    |  122 +-
 po-Server/{zh_CN.po => fa.po}                      |   61 +-
 po-Server/{sv.po => fi.po}                         |   64 +-
 po-Server/fr.po                                    |   42 +-
 po-Server/pt_BR.po                                 |    4 +-
 po-Server/sv.po                                    |   17 +-
 po-Server/{zh_CN.po => te.po}                      |   66 +-
 po-Server/{zh_CN.po => tr.po}                      |   66 +-
 po-Server/zh_CN.po                                 |    8 +-
 src/AssemblyVersion.cs                             |    2 +-
 src/Common/Defines.cs                              |    4 +-
 src/Common/Makefile.in                             |    3 +-
 src/Common/Platform.cs                             |   33 +-
 src/Engine-Campfire/Makefile.in                    |    3 +-
 .../Protocols/Campfire/CampfireEventStream.cs      |   28 +-
 .../Protocols/Campfire/CampfireProtocolManager.cs  |   37 +-
 src/Engine-IRC/Makefile.in                         |    3 +-
 src/Engine-IRC/Protocols/Irc/IrcMessageBuilder.cs  |    2 +-
 src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs |  206 +--
 src/Engine-JabbR/JabbrProtocolManager.cs           |  153 ++-
 src/Engine-JabbR/Makefile.in                       |    3 +-
 src/Engine-Twitter/Makefile.am                     |    3 +-
 src/Engine-Twitter/Makefile.in                     |    6 +-
 .../Protocols/Twitter/TwitterMessageBuilder.cs     |   73 +-
 .../Protocols/Twitter/TwitterProtocolManager.cs    |  603 +++++++--
 src/Engine-XMPP/Config/XmppPersonModel.cs          |   16 +-
 src/Engine-XMPP/Config/XmppServerModel.cs          |    1 -
 src/Engine-XMPP/Makefile.in                        |    3 +-
 .../Protocols/Xmpp/XmppGroupChatModel.cs           |    1 +
 .../Protocols/Xmpp/XmppProtocolManager.cs          |  800 ++++++++---
 src/Engine/Chats/ChatModel.cs                      |    7 +-
 src/Engine/Chats/PersonChatModel.cs                |    3 +
 src/Engine/CommandModel.cs                         |   69 +-
 src/Engine/Engine.cs                               |    6 +
 src/Engine/FrontendManager.cs                      |   21 +-
 .../Hooks/Commands/HookCommand.cs}                 |   25 +-
 .../Hooks/Commands/ProtocolManagerHookCommand.cs   |   50 +
 .../Hooks/Commands/SessionHookCommand.cs}          |   41 +-
 .../Hooks/Environments/ChatHookEnvironment.cs}     |   31 +-
 .../Hooks/Environments/CommandHookEnvironment.cs}  |   29 +-
 .../Hooks/Environments/HookEnvironment.cs}         |   24 +-
 .../Hooks/Environments/MessageHookEnvironment.cs   |   58 +
 .../ProtocolManagerHookEnvironment.cs}             |   35 +-
 src/Engine/Hooks/HookRunner.cs                     |  180 +++
 src/Engine/Makefile.am                             |   13 +-
 src/Engine/Makefile.in                             |   16 +-
 src/Engine/Messages/FeedMessageBuilder.cs          |   16 +-
 src/Engine/Messages/MessageBuilder.cs              |   99 +-
 src/Engine/Messages/MessageType.cs                 |   10 +-
 src/Engine/Protocols/IProtocolManager.cs           |   14 +-
 src/Engine/Protocols/ProtocolManagerBase.cs        |  109 +-
 src/Engine/Protocols/ProtocolManagerFactory.cs     |    8 +-
 src/Engine/Session.cs                              |  180 ++-
 src/Engine/SessionManager.cs                       |    9 +
 src/Engine/UICommandContainer.cs                   |   56 -
 src/Frontend-Curses/Makefile.in                    |    3 +-
 src/Frontend-GNOME-IRC/Makefile.in                 |    3 +-
 .../AssemblyInfo.cs}                               |   35 +-
 src/Frontend-GNOME-Twitter/Makefile.am             |   38 +
 .../Makefile.in                                    |   27 +-
 src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs |  201 +++
 src/Frontend-GNOME-XMPP/Makefile.in                |    3 +-
 src/Frontend-GNOME-XMPP/XmppGroupChatView.cs       |   14 +
 src/Frontend-GNOME-XMPP/XmppPersonChatView.cs      |  165 +++
 src/Frontend-GNOME/ChatViewManager.cs              |   47 +-
 src/Frontend-GNOME/EngineManagerDialog.cs          |   30 +-
 src/Frontend-GNOME/Entry.cs                        |    6 +
 src/Frontend-GNOME/Frontend.cs                     |   11 +-
 src/Frontend-GNOME/IndicateManager.cs              |    8 +-
 src/Frontend-GNOME/MainWindow.cs                   |   65 +-
 src/Frontend-GNOME/Makefile.am                     |    4 +-
 src/Frontend-GNOME/Makefile.in                     |  105 +-
 src/Frontend-GNOME/Notebook.cs                     |    5 +-
 src/Frontend-GNOME/NotifyManager.cs                |   12 +-
 .../Preferences/PreferencesDialog.cs               |   10 +-
 .../Views/Assistants/Engine/EngineAssistant.cs     |   10 +-
 src/Frontend-GNOME/Views/ChatTreeView.cs           |  454 +++++++
 src/Frontend-GNOME/Views/Chats/ChatView.cs         |   68 +-
 src/Frontend-GNOME/Views/Chats/GroupChatView.cs    |   18 +-
 src/Frontend-GNOME/Views/Chats/PersonChatView.cs   |   23 +
 src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs |    5 +
 src/Frontend-GNOME/Views/Chats/SessionChatView.cs  |    4 +
 src/Frontend-GNOME/Views/MenuWidget.cs             |   19 +-
 src/Frontend-GNOME/Views/MessageTextView.cs        |   23 +-
 src/Frontend-GNOME/Views/ServerWidget.cs           |   11 +-
 src/Frontend-GNOME/smuxi-frontend-gnome.1          |   42 +
 src/Frontend-GNOME/smuxi-frontend-gnome.desktop    |    6 +-
 src/Frontend-STFL/Makefile.am                      |    3 +-
 src/Frontend-STFL/Makefile.in                      |   90 +-
 src/Frontend-STFL/STFL/Form.cs                     |    5 +
 src/Frontend-STFL/STFL/Makefile.in                 |    3 +-
 src/Frontend-STFL/STFL/TextView.cs                 |   20 +-
 src/Frontend-STFL/STFL/Widget.cs                   |   28 +-
 src/Frontend-STFL/smuxi-frontend-stfl.1            |   89 ++
 src/Frontend-STFL/smuxi-frontend-stfl.in           |    2 +-
 src/Frontend-SWF/Frontend.cs                       |    6 -
 src/Frontend-SWF/Makefile.am                       |    2 -
 src/Frontend-SWF/Makefile.in                       |    5 +-
 src/Frontend-SWF/SplashScreenWindow.cs             |   46 -
 src/Frontend-SWF/SplashScreenWindow.designer.cs    |   22 -
 src/Frontend-Test/Makefile.in                      |    3 +-
 src/Frontend/ChatViewInfoAttribute.cs              |    3 +-
 src/Frontend/ChatViewManagerBase.cs                |   23 +-
 src/Frontend/CommandManager.cs                     |   44 +-
 src/Frontend/EntryController.cs                    |    1 -
 src/Frontend/EntryHistoryModel.cs                  |    1 -
 src/Frontend/Makefile.am                           |    2 -
 src/Frontend/Makefile.in                           |    5 +-
 src/Frontend/SshTunnelManager.cs                   |    3 +
 src/Makefile.am                                    |    5 +
 src/Makefile.in                                    |    9 +-
 src/Server/Makefile.am                             |    6 +-
 src/Server/Makefile.in                             |   91 +-
 src/Server/Server.cs                               |   23 +-
 src/Server/smuxi-server.1                          |   58 +
 src/smuxi-win32.nsis.in                            |    6 +-
 349 files changed, 18406 insertions(+), 8168 deletions(-)

diff --git a/BUGS b/BUGS
index 4c04d65..a5bb664 100644
--- a/BUGS
+++ b/BUGS
@@ -1,16 +1,9 @@
-/**
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- */
 
 For checking known bugs, please visit:
-http://smuxi.meebey.net/cgi-bin/trac/trac.cgi/query?status=new&status=assigned&status=reopened&type=defect&order=id&desc=1
+https://www.smuxi.org/projects/smuxi/issues?set_filter=1&tracker_id=1
 
 For checking known feature requests, please visit:
-http://smuxi.meebey.net/cgi-bin/trac/trac.cgi/query?status=new&status=assigned&status=reopened&type=enhancement&order=id&desc=1
+https://www.smuxi.org/projects/smuxi/issues?set_filter=1&tracker_id=2
 
 For reporting a new bugs or feature request, please visit:
-http://smuxi.meebey.net/cgi-bin/trac/trac.cgi/newticket
+https://www.smuxi.org/projects/smuxi/issues/new
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..319ebd7
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,98 @@
+See https://www.smuxi.org/page/HackingHowto
+
+Coding Style
+============
+
+using System;
+using System.IO;
+using ThirdPartyNamespaces;
+using MyOwnNamespaces;
+
+namespace Smuxi.Frontend.Gnome
+{
+    public class GroupChatView : ChatView
+    {
+        // fields before auto properties
+        int f_SomeField;
+        string f_AnotherField;
+        public int SomeAutoProperty { get; set; }
+
+        // properties before ctors
+        public int SomeManualProperty {
+            get {
+                return f_SomeField;
+            }
+            set {
+                f_SomeField = value;
+            }
+        }
+
+        // events before ctors
+        public event EventHandler<EventArgs> StatusChanged;
+
+        // ctors before methods
+        public ChatView()
+        {
+        }
+
+        public ChatView(int someParameter, string anotherParameter) :
+                   base(someParameter, anotherParameter)
+        {
+            SomeAutoProperty = someParameter;
+            f_AnotherField = anotherParameter;
+        }
+
+        public void SomePublicMethod()
+        {
+            // avoid nesting
+            if (f_SomeField != 0) {
+                return;
+            }
+
+            DoSomething();
+
+            var res = MethodCallWithLotsOfParameterThatDontFitInASingleLine(
+                f_SomeField,
+                f_AnotherField,
+                String.Format(
+                    "Some String with {0}",
+                    SomeAutoProperty
+                )
+            );
+
+            switch (res) {
+                case "Foo":
+                    // code of Foo case
+                    break;
+                case "Bar":
+                    // code of Bar case
+                    break;
+            }
+        }
+
+        // do not specify default access modifiers (private for methods)
+        void DoSomething()
+        {
+            try {
+                using (var hardStuff = GetSomethingHard()) {
+                    // this is too hard, can't deal with it
+                }
+            } catch (InvalidOperationException) {
+            }
+
+            // do not use if (!something) with a else case, instead do:
+            if (something) {
+                // something is true case
+            } else {
+                // something is false case
+            }
+
+            // fluent style
+            var msg = CreateMessageBuilder().
+                AppendEventPrefix().
+                AppendFormat("Test message").
+                ToMessage();
+            AddMessage(msg);
+        }
+    }
+}
diff --git a/Makefile.am b/Makefile.am
index 885b4fb..c365e23 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,10 +7,18 @@ if ENABLE_ENGINE_IRC
 PO_ENGINE_IRC = po-Engine-IRC
 endif
 
+if ENABLE_ENGINE_JABBR
+PO_ENGINE_JABBR = po-Engine-JabbR
+endif
+
 if ENABLE_ENGINE_TWITTER
 PO_ENGINE_TWITTER = po-Engine-Twitter
 endif
 
+if ENABLE_ENGINE_XMPP
+PO_ENGINE_XMPP = po-Engine-XMPP
+endif
+
 # Frontends
 if ENABLE_FRONTEND_GNOME
 PO_FRONTEND_GNOME = po-Frontend-GNOME
@@ -20,6 +28,10 @@ if ENABLE_FRONTEND_GNOME_IRC
 PO_FRONTEND_GNOME_IRC = po-Frontend-GNOME-IRC
 endif
 
+if ENABLE_FRONTEND_GNOME_TWITTER
+PO_FRONTEND_GNOME_TWITTER = po-Frontend-GNOME-Twitter
+endif
+
 if ENABLE_FRONTEND_GNOME_XMPP
 PO_FRONTEND_GNOME_XMPP = po-Frontend-GNOME-XMPP
 endif
@@ -30,8 +42,9 @@ EXTRA_DIST =	install-sh \
 		expansions.m4 \
 		mono.m4 \
 		programs.m4 \
+		HACKING \
 		LICENSE \
-		README \
+		README.md \
 		CREDITS \
 		PROFILING \
 		FEATURES \
@@ -49,11 +62,14 @@ PODIRS =	po \
 		po-Engine \
 		$(PO_ENGINE_CAMPFIRE) \
 		$(PO_ENGINE_IRC) \
+		$(PO_ENGINE_JABBR) \
 		$(PO_ENGINE_TWITTER) \
+		$(PO_ENGINE_XMPP) \
 		po-Server \
 		po-Frontend \
 		$(PO_FRONTEND_GNOME) \
 		$(PO_FRONTEND_GNOME_IRC) \
+		$(PO_FRONTEND_GNOME_TWITTER) \
 		$(PO_FRONTEND_GNOME_XMPP)
 
 SUBDIRS = 	lib \
@@ -77,7 +93,7 @@ update-pot:
 	done
 
 update-transifex:
-	tx pull -f -l ca,cs,da,de,en_GB,es,fi,fr,hr,nb_NO,pl,pt_BR,ru,sk,sv,tr,ur,zh_CN
+	tx pull -f -l ca,cs,da,de,en_GB,es,fa,fi,fr,hr,ko,nb_NO,pl,pt_BR,ru,sk,sv,te,tr,ur,zh_CN
 
 mail-po: update-po
 	for PODIR in $(PODIRS); do \
@@ -206,9 +222,10 @@ dist-win32:
 		COMPILER_OVERRIDE="MCS=/usr/bin/dmcs"; \
 		echo COMPILER_OVERRIDE="$$COMPILER_OVERRIDE"; \
 	fi; \
+	DIST_VERSION=$$(git describe); \
 	./autogen.sh $$COMPILER_OVERRIDE --without-indicate --without-messaging-menu --without-notify --without-dbus \
 	  --with-db4o=included \
-	  --with-vendor-package-version="dist-win32"
+	  --with-vendor-package-version="dist-win32 $$DIST_VERSION"
 	$(MAKE)
 	mkdir -p $(WIN32_BUILD_DIR)
 	for FILE in $(WIN32_FILES); do \
@@ -226,9 +243,10 @@ dist-osx:
 		COMPILER_OVERRIDE="MCS=/usr/bin/dmcs"; \
 		echo COMPILER_OVERRIDE="$$COMPILER_OVERRIDE"; \
 	fi; \
+	DIST_VERSION=$$(git describe); \
 	./autogen.sh $$COMPILER_OVERRIDE --without-indicate --without-messaging-menu --without-notify --without-dbus \
 	  --with-db4o=included \
-	  --with-vendor-package-version="dist-osx"
+	  --with-vendor-package-version="dist-osx $$DIST_VERSION"
 	$(MAKE)
 	mkdir -p $(OSX_BINARIES_DIR) $(OSX_RESOURCES_DIR)
 	cp $(OSX_LIB_DIR)/Info.plist $(OSX_CONTENTS_DIR)
diff --git a/Makefile.in b/Makefile.in
index 98c6982..47925da 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -80,7 +80,7 @@ host_triplet = @host@
 subdir = .
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/configure $(am__configure_deps) \
-	$(top_srcdir)/lib/osx/Info.plist.in README TODO config.guess \
+	$(top_srcdir)/lib/osx/Info.plist.in TODO compile config.guess \
 	config.rpath config.sub install-sh missing ltmain.sh
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/expansions.m4 \
@@ -152,8 +152,9 @@ ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
 DIST_SUBDIRS = lib src po po-Engine po-Engine-Campfire po-Engine-IRC \
-	po-Engine-Twitter po-Server po-Frontend po-Frontend-GNOME \
-	po-Frontend-GNOME-IRC po-Frontend-GNOME-XMPP
+	po-Engine-JabbR po-Engine-Twitter po-Engine-XMPP po-Server \
+	po-Frontend po-Frontend-GNOME po-Frontend-GNOME-IRC \
+	po-Frontend-GNOME-Twitter po-Frontend-GNOME-XMPP
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -247,6 +248,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -419,19 +421,23 @@ twitter_api_key = @twitter_api_key@
 # Engines
 @ENABLE_ENGINE_CAMPFIRE_TRUE at PO_ENGINE_CAMPFIRE = po-Engine-Campfire
 @ENABLE_ENGINE_IRC_TRUE at PO_ENGINE_IRC = po-Engine-IRC
+ at ENABLE_ENGINE_JABBR_TRUE@PO_ENGINE_JABBR = po-Engine-JabbR
 @ENABLE_ENGINE_TWITTER_TRUE at PO_ENGINE_TWITTER = po-Engine-Twitter
+ at ENABLE_ENGINE_XMPP_TRUE@PO_ENGINE_XMPP = po-Engine-XMPP
 
 # Frontends
 @ENABLE_FRONTEND_GNOME_TRUE at PO_FRONTEND_GNOME = po-Frontend-GNOME
 @ENABLE_FRONTEND_GNOME_IRC_TRUE at PO_FRONTEND_GNOME_IRC = po-Frontend-GNOME-IRC
+ at ENABLE_FRONTEND_GNOME_TWITTER_TRUE@PO_FRONTEND_GNOME_TWITTER = po-Frontend-GNOME-Twitter
 @ENABLE_FRONTEND_GNOME_XMPP_TRUE at PO_FRONTEND_GNOME_XMPP = po-Frontend-GNOME-XMPP
 ACLOCAL_AMFLAGS = -I .
 EXTRA_DIST = install-sh \
 		expansions.m4 \
 		mono.m4 \
 		programs.m4 \
+		HACKING \
 		LICENSE \
-		README \
+		README.md \
 		CREDITS \
 		PROFILING \
 		FEATURES \
@@ -450,11 +456,14 @@ PODIRS = po \
 		po-Engine \
 		$(PO_ENGINE_CAMPFIRE) \
 		$(PO_ENGINE_IRC) \
+		$(PO_ENGINE_JABBR) \
 		$(PO_ENGINE_TWITTER) \
+		$(PO_ENGINE_XMPP) \
 		po-Server \
 		po-Frontend \
 		$(PO_FRONTEND_GNOME) \
 		$(PO_FRONTEND_GNOME_IRC) \
+		$(PO_FRONTEND_GNOME_TWITTER) \
 		$(PO_FRONTEND_GNOME_XMPP)
 
 SUBDIRS = lib \
@@ -785,10 +794,16 @@ dist-xz: distdir
 	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__post_remove_distdir)
 
 dist-shar: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
 	$(am__post_remove_distdir)
 
@@ -1027,7 +1042,7 @@ update-pot:
 	done
 
 update-transifex:
-	tx pull -f -l ca,cs,da,de,en_GB,es,fi,fr,hr,nb_NO,pl,pt_BR,ru,sk,sv,tr,ur,zh_CN
+	tx pull -f -l ca,cs,da,de,en_GB,es,fa,fi,fr,hr,ko,nb_NO,pl,pt_BR,ru,sk,sv,te,tr,ur,zh_CN
 
 mail-po: update-po
 	for PODIR in $(PODIRS); do \
@@ -1067,9 +1082,10 @@ dist-win32:
 		COMPILER_OVERRIDE="MCS=/usr/bin/dmcs"; \
 		echo COMPILER_OVERRIDE="$$COMPILER_OVERRIDE"; \
 	fi; \
+	DIST_VERSION=$$(git describe); \
 	./autogen.sh $$COMPILER_OVERRIDE --without-indicate --without-messaging-menu --without-notify --without-dbus \
 	  --with-db4o=included \
-	  --with-vendor-package-version="dist-win32"
+	  --with-vendor-package-version="dist-win32 $$DIST_VERSION"
 	$(MAKE)
 	mkdir -p $(WIN32_BUILD_DIR)
 	for FILE in $(WIN32_FILES); do \
@@ -1087,9 +1103,10 @@ dist-osx:
 		COMPILER_OVERRIDE="MCS=/usr/bin/dmcs"; \
 		echo COMPILER_OVERRIDE="$$COMPILER_OVERRIDE"; \
 	fi; \
+	DIST_VERSION=$$(git describe); \
 	./autogen.sh $$COMPILER_OVERRIDE --without-indicate --without-messaging-menu --without-notify --without-dbus \
 	  --with-db4o=included \
-	  --with-vendor-package-version="dist-osx"
+	  --with-vendor-package-version="dist-osx $$DIST_VERSION"
 	$(MAKE)
 	mkdir -p $(OSX_BINARIES_DIR) $(OSX_RESOURCES_DIR)
 	cp $(OSX_LIB_DIR)/Info.plist $(OSX_CONTENTS_DIR)
diff --git a/README b/README.md
similarity index 50%
rename from README
rename to README.md
index b1fdc5d..2936448 100644
--- a/README
+++ b/README.md
@@ -1,5 +1,5 @@
 Software Requirements
----------------------
+=====================
 First you will need to install a few libraries to compile the source
 
 Libraries:
@@ -8,26 +8,55 @@ Libraries:
 * log4net
 * GTK# (>= 2.10)
 * Notify# (optional)
-* Indicate#  (optional)
+* Indicate# / MessagingMenu# (optional)
 * DBus# / NDesk.DBus (optional)
+* GtkSpell (optional)
+* STFL (optional)
 
 Depending on your operating system and favorite distribution the installation of the listed applications varies. For Debian based distributions it's just a matter of the following commands:
 
     apt-get install mono-devel mono-xbuild libnini-cil-dev liblog4net-cil-dev libgtk2.0-cil-dev libglade2.0-cil-dev libnotify-cil-dev libindicate0.1-cil-dev libndesk-dbus-glib1.0-cil-dev libndesk-dbus1.0-cil-dev lsb-release
 
 Compiling Source
-----------------
+================
 
     ./configure
     make
 
 Installing
-----------
+==========
 
     make install
 
 Running
--------
+=======
 
 Now you can start Smuxi from the GNOME or KDE menu.
 
+Source Structure
+================
+
+src/
+----
+
+This directory contains the source code of all Smuxi components.
+
+lib/
+----
+
+This directory contains libraries that Smuxi needs and ships as part of Smuxi.
+
+po\*/
+-----
+
+These directories contain translation files based on gettext.
+
+debian/
+-------
+
+The debian/ directory contains upstream packaging used for the daily development
+builds for Ubuntu and Debian found on [launchpad][].
+The official (downstream) Debian packaging can be found on [here][].
+
+  [launchpad]: https://launchpad.net/~meebey/+archive/smuxi-daily
+  [here]: http://git.debian.org/?p=pkg-cli-apps/packages/smuxi.git
diff --git a/TODO b/TODO
index 28ff7b0..59c2ab1 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,5 @@
 For a current list of current open tasks/tickets, see:
-http://projects.qnetp.net/projects/smuxi/issues?status_id=o
+https://www.smuxi.org/issues?status_id=o
 
 Feature Requests not converted to redmine tickets (yet):
 - theming: per-channel settings
@@ -15,20 +15,16 @@ Feature Requests not converted to redmine tickets (yet):
 - add marker for disabled pages
 - different identities per server (Salz)
 - overview page, showing all channels and queries on one page (Salz)
-- mark last seen line when switching to other pages and a button to jump it (basher)
+- button to jump to last seen line marker (basher)
 - add sed support to correct the last said line, below the sed line
 - support ^G (beep), option to either flash screen, ignore or play audio/system beep (basher)
 - auto-cleanup query windows after X hours/days of inactivity
 - nickname completion should ignore special characters (darix)
-- normal nick completion should allow multiple tab press to iterate through possible nicks
 - use RedirectChannel / TcpExChannel
-- "/config set" command for preferences
 - DCC receiving and sending (helgi)
 - aliases for commands (/alias slap me slaps $1 with a large trout)
 - use for each server connection a servertab and group
   the channels within them (Tobias Schlitt)
 - smuxi cocoa frontend (Alexander Wirt)
-- smuxi text frontend (ncurses based? probably better: SWC)
-- scripting/plugins C#/Perl/Python/PHP
 - traffic status, showing how much messages per second are written in that
 channel (showing it in the tab as pixmap) (Salz)
diff --git a/aclocal.m4 b/aclocal.m4
index 8e853c5..cfd51c6 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.14 -*- Autoconf -*-
 
 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
@@ -2622,10 +2622,10 @@ AC_SUBST([$1])dnl
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.14'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.13.3], [],
+m4_if([$1], [1.14], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -2641,7 +2641,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.13.3])dnl
+[AM_AUTOMAKE_VERSION([1.14])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -3008,6 +3008,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -3116,7 +3122,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
@@ -3124,7 +3171,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -3342,6 +3388,53 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
 # Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
diff --git a/compile b/compile
new file mode 100755
index 0000000..531136b
--- /dev/null
+++ b/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""	$nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv/,$2, in
+	*,$file_conv,*)
+	  ;;
+	mingw/*)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin/*)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine/*)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+	-o)
+	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
+	  eat=1
+	  case $2 in
+	    *.o | *.[oO][bB][jJ])
+	      func_file_conv "$2"
+	      set x "$@" -Fo"$file"
+	      shift
+	      ;;
+	    *)
+	      func_file_conv "$2"
+	      set x "$@" -Fe"$file"
+	      shift
+	      ;;
+	  esac
+	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-I*)
+	  func_file_conv "${1#-I}" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-l*)
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
+	-L*)
+	  func_cl_dashL "${1#-L}"
+	  ;;
+	-static)
+	  shared=false
+	  ;;
+	-Wl,*)
+	  arg=${1#-Wl,}
+	  save_ifs="$IFS"; IFS=','
+	  for flag in $arg; do
+	    IFS="$save_ifs"
+	    linker_opts="$linker_opts $flag"
+	  done
+	  IFS="$save_ifs"
+	  ;;
+	-Xlinker)
+	  eat=1
+	  linker_opts="$linker_opts $2"
+	  ;;
+	-*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+	  func_file_conv "$1"
+	  set x "$@" -Tp"$file"
+	  shift
+	  ;;
+	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+	  func_file_conv "$1" mingw
+	  set x "$@" "$file"
+	  shift
+	  ;;
+	*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as 'compile cc -o foo foo.c'.
+	# So we strip '-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/configure b/configure
index 0105c93..207667e 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for smuxi 0.9.
+# Generated by GNU Autoconf 2.69 for smuxi 0.10.
 #
 # Report bugs to <https://smuxi.im/issues/new>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='smuxi'
 PACKAGE_TARNAME='smuxi'
-PACKAGE_VERSION='0.9'
-PACKAGE_STRING='smuxi 0.9'
+PACKAGE_VERSION='0.10'
+PACKAGE_STRING='smuxi 0.10'
 PACKAGE_BUGREPORT='https://smuxi.im/issues/new'
 PACKAGE_URL=''
 
@@ -653,6 +653,8 @@ STFL_LIBS
 STFL_CFLAGS
 ENABLE_FRONTEND_GNOME_XMPP_FALSE
 ENABLE_FRONTEND_GNOME_XMPP_TRUE
+ENABLE_FRONTEND_GNOME_TWITTER_FALSE
+ENABLE_FRONTEND_GNOME_TWITTER_TRUE
 ENABLE_FRONTEND_GNOME_IRC_FALSE
 ENABLE_FRONTEND_GNOME_IRC_TRUE
 ENABLE_FRONTEND_GNOME_FALSE
@@ -749,6 +751,7 @@ GETTEXT_PACKAGE_FRONTEND_SWF
 GETTEXT_PACKAGE_FRONTEND_CURSES
 GETTEXT_PACKAGE_FRONTEND_STFL
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC
 GETTEXT_PACKAGE_FRONTEND_GNOME
 GETTEXT_PACKAGE_FRONTEND
@@ -1540,7 +1543,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures smuxi 0.9 to adapt to many kinds of systems.
+\`configure' configures smuxi 0.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1610,7 +1613,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of smuxi 0.9:";;
+     short | recursive ) echo "Configuration of smuxi 0.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1826,7 +1829,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-smuxi configure 0.9
+smuxi configure 0.10
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2104,7 +2107,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by smuxi $as_me 0.9, which was
+It was created by smuxi $as_me 0.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2455,7 +2458,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 # using the --foreign option makes automake less strict about GNU policy
 
-am__api_version='1.13'
+am__api_version='1.14'
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -2970,7 +2973,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='smuxi'
- VERSION='0.9'
+ VERSION='0.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3137,6 +3140,47 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
@@ -4256,6 +4300,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -12368,12 +12471,14 @@ POSUB="
 	po-Engine
 	po-Engine-Campfire
 	po-Engine-IRC
-	po-Engine-XMPP
 	po-Engine-JabbR
+	po-Engine-Twitter
+	po-Engine-XMPP
 	po-Server
 	po-Frontend
 	po-Frontend-GNOME
 	po-Frontend-GNOME-IRC
+	po-Frontend-GNOME-Twitter
 	po-Frontend-GNOME-XMPP
 	po-Frontend-SWF
 "
@@ -12421,7 +12526,7 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-GETTEXT_PACKAGE_ENGINE_TWITTER=smuxi-engine-jabbr
+GETTEXT_PACKAGE_ENGINE_JABBR=smuxi-engine-jabbr
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12461,6 +12566,14 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER=smuxi-frontend-gnome-twitter
+
+
+cat >>confdefs.h <<_ACEOF
+#define GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER "$GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER"
+_ACEOF
+
+
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP=smuxi-frontend-gnome-xmpp
 
 
@@ -14870,8 +14983,53 @@ fi
 
 
 
+    if pkg-config --atleast-version=2.8 mono; then
+
+	# Extract the first word of "dmcs", so it can be a program name with args.
+set dummy dmcs; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MCS+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MCS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MCS="$MCS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MCS=$ac_cv_path_MCS
+if test -n "$MCS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5
+$as_echo "$MCS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
 
 
+
+    fi
+    if test "x$MCS" = "x" ; then
+
 	# Extract the first word of "gmcs", so it can be a program name with args.
 set dummy gmcs; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -14899,7 +15057,6 @@ done
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_MCS" && ac_cv_path_MCS="no"
   ;;
 esac
 fi
@@ -14915,10 +15072,11 @@ fi
 
 
 
-	if test "x$MCS" = "xno"; then
-		as_fn_error $? "You need to install 'gmcs'" "$LINENO" 5
-	fi
+    fi
 
+    if test "x$MCS" = "x" ; then
+        as_fn_error $? "You need to install 'dmcs' or 'gmcs'" "$LINENO" 5
+    fi
 
 
 
@@ -16120,9 +16278,19 @@ if test -n "$PKG_CONFIG" && \
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  DBUS_SHARP_SUPPORT=yes
+  DBUS_SHARP1_SUPPORT=yes
 else
-  DBUS_SHARP_SUPPORT=no
+  DBUS_SHARP1_SUPPORT=no
+fi
+if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  DBUS_SHARP2_SUPPORT=yes
+else
+  DBUS_SHARP2_SUPPORT=no
 fi
 if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ndesk-dbus-1.0\""; } >&5
@@ -16135,14 +16303,202 @@ else
   NDESK_DBUS_SUPPORT=no
 fi
 if test "x$WITH_DBUS" = "xauto"; then
-	if test "x$DBUS_SHARP_SUPPORT" = "xyes"; then
-		WITH_DBUS=$DBUS_SHARP_SUPPORT
+	if test "x$DBUS_SHARP1_SUPPORT" = "xyes"; then
+		WITH_DBUS=$DBUS_SHARP1_SUPPORT
+	elif test "x$DBUS_SHARP2_SUPPORT" = "xyes"; then
+		WITH_DBUS=$DBUS_SHARP2_SUPPORT
 	else
 		WITH_DBUS=$NDESK_DBUS_SUPPORT
 	fi
 fi
 if test "x$WITH_DBUS" = "xyes"; then
-	if test "x$DBUS_SHARP_SUPPORT" = "xyes"; then
+	if test "x$DBUS_SHARP2_SUPPORT" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_SHARP" >&5
+$as_echo_n "checking for DBUS_SHARP... " >&6; }
+
+if test -n "$DBUS_SHARP_CFLAGS"; then
+    pkg_cv_DBUS_SHARP_CFLAGS="$DBUS_SHARP_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_SHARP_CFLAGS=`$PKG_CONFIG --cflags "dbus-sharp-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$DBUS_SHARP_LIBS"; then
+    pkg_cv_DBUS_SHARP_LIBS="$DBUS_SHARP_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_SHARP_LIBS=`$PKG_CONFIG --libs "dbus-sharp-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        DBUS_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-sharp-2.0" 2>&1`
+        else
+	        DBUS_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-sharp-2.0" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$DBUS_SHARP_PKG_ERRORS" >&5
+
+	as_fn_error $? "Package requirements (dbus-sharp-2.0) were not met:
+
+$DBUS_SHARP_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DBUS_SHARP_CFLAGS
+and DBUS_SHARP_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DBUS_SHARP_CFLAGS
+and DBUS_SHARP_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+	DBUS_SHARP_CFLAGS=$pkg_cv_DBUS_SHARP_CFLAGS
+	DBUS_SHARP_LIBS=$pkg_cv_DBUS_SHARP_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_SHARP_GLIB" >&5
+$as_echo_n "checking for DBUS_SHARP_GLIB... " >&6; }
+
+if test -n "$DBUS_SHARP_GLIB_CFLAGS"; then
+    pkg_cv_DBUS_SHARP_GLIB_CFLAGS="$DBUS_SHARP_GLIB_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-glib-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-glib-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_SHARP_GLIB_CFLAGS=`$PKG_CONFIG --cflags "dbus-sharp-glib-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$DBUS_SHARP_GLIB_LIBS"; then
+    pkg_cv_DBUS_SHARP_GLIB_LIBS="$DBUS_SHARP_GLIB_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-glib-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-glib-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_SHARP_GLIB_LIBS=`$PKG_CONFIG --libs "dbus-sharp-glib-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        DBUS_SHARP_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-sharp-glib-2.0" 2>&1`
+        else
+	        DBUS_SHARP_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-sharp-glib-2.0" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$DBUS_SHARP_GLIB_PKG_ERRORS" >&5
+
+	as_fn_error $? "Package requirements (dbus-sharp-glib-2.0) were not met:
+
+$DBUS_SHARP_GLIB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DBUS_SHARP_GLIB_CFLAGS
+and DBUS_SHARP_GLIB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DBUS_SHARP_GLIB_CFLAGS
+and DBUS_SHARP_GLIB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+	DBUS_SHARP_GLIB_CFLAGS=$pkg_cv_DBUS_SHARP_GLIB_CFLAGS
+	DBUS_SHARP_GLIB_LIBS=$pkg_cv_DBUS_SHARP_GLIB_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+		DBUS_LIBS="$DBUS_SHARP_LIBS $DBUS_SHARP_GLIB_LIBS"
+
+		CSC_FLAGS+=" -define:IPC_DBUS -define:DBUS_SHARP"
+	elif test "x$DBUS_SHARP1_SUPPORT" = "xyes"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_SHARP" >&5
@@ -17511,6 +17867,7 @@ $as_echo "not found" >&6; }
 
 
 	ENABLE_FRONTEND_GNOME_IRC=$ENABLE_ENGINE_IRC;
+	ENABLE_FRONTEND_GNOME_TWITTER=$ENABLE_ENGINE_TWITTER;
 	ENABLE_FRONTEND_GNOME_XMPP=$ENABLE_ENGINE_XMPP;
 fi
  if test "x$ENABLE_FRONTEND_GNOME" = "xyes"; then
@@ -17529,6 +17886,14 @@ else
   ENABLE_FRONTEND_GNOME_IRC_FALSE=
 fi
 
+ if test "x$ENABLE_FRONTEND_GNOME_TWITTER" = "xyes"; then
+  ENABLE_FRONTEND_GNOME_TWITTER_TRUE=
+  ENABLE_FRONTEND_GNOME_TWITTER_FALSE='#'
+else
+  ENABLE_FRONTEND_GNOME_TWITTER_TRUE='#'
+  ENABLE_FRONTEND_GNOME_TWITTER_FALSE=
+fi
+
  if test "x$ENABLE_FRONTEND_GNOME_XMPP" = "xyes"; then
   ENABLE_FRONTEND_GNOME_XMPP_TRUE=
   ENABLE_FRONTEND_GNOME_XMPP_FALSE='#'
@@ -17755,7 +18120,7 @@ else
 fi
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile src/AssemblyVersion.cs src/smuxi-win32.nsis src/Common/Makefile src/Common/Defines.cs src/Common/smuxi-common.pc src/Engine/Makefile src/Engine/smuxi-engine.pc src/Engine-IRC/Makefile src/Engine-IRC/smuxi-engine-irc.pc src/Engine-JabbR/Makefile src/Engine-JabbR/smuxi-engine-jabbr.pc src/Engine-Twitter/Makefile src/Engine-XMPP/Makefile src/Engine-XMPP/smuxi-engine-xmpp.pc src/Engine-Campfire/Makefile src/Server/Makefile src/Server/sm [...]
+ac_config_files="$ac_config_files Makefile src/Makefile src/AssemblyVersion.cs src/smuxi-win32.nsis src/Common/Makefile src/Common/Defines.cs src/Common/smuxi-common.pc src/Engine/Makefile src/Engine/smuxi-engine.pc src/Engine-IRC/Makefile src/Engine-IRC/smuxi-engine-irc.pc src/Engine-JabbR/Makefile src/Engine-JabbR/smuxi-engine-jabbr.pc src/Engine-Twitter/Makefile src/Engine-XMPP/Makefile src/Engine-XMPP/smuxi-engine-xmpp.pc src/Engine-Campfire/Makefile src/Server/Makefile src/Server/sm [...]
 
 
 cat >confcache <<\_ACEOF
@@ -17995,6 +18360,10 @@ if test -z "${ENABLE_FRONTEND_GNOME_IRC_TRUE}" && test -z "${ENABLE_FRONTEND_GNO
   as_fn_error $? "conditional \"ENABLE_FRONTEND_GNOME_IRC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${ENABLE_FRONTEND_GNOME_TWITTER_TRUE}" && test -z "${ENABLE_FRONTEND_GNOME_TWITTER_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_FRONTEND_GNOME_TWITTER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ENABLE_FRONTEND_GNOME_XMPP_TRUE}" && test -z "${ENABLE_FRONTEND_GNOME_XMPP_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_FRONTEND_GNOME_XMPP\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -18420,7 +18789,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by smuxi $as_me 0.9, which was
+This file was extended by smuxi $as_me 0.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18477,7 +18846,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-smuxi config.status 0.9
+smuxi config.status 0.10
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -18906,6 +19275,7 @@ do
     "src/Frontend-GNOME/Makefile") CONFIG_FILES="$CONFIG_FILES src/Frontend-GNOME/Makefile" ;;
     "src/Frontend-GNOME/smuxi-frontend-gnome") CONFIG_FILES="$CONFIG_FILES src/Frontend-GNOME/smuxi-frontend-gnome" ;;
     "src/Frontend-GNOME-IRC/Makefile") CONFIG_FILES="$CONFIG_FILES src/Frontend-GNOME-IRC/Makefile" ;;
+    "src/Frontend-GNOME-Twitter/Makefile") CONFIG_FILES="$CONFIG_FILES src/Frontend-GNOME-Twitter/Makefile" ;;
     "src/Frontend-GNOME-XMPP/Makefile") CONFIG_FILES="$CONFIG_FILES src/Frontend-GNOME-XMPP/Makefile" ;;
     "src/Frontend-Curses/Makefile") CONFIG_FILES="$CONFIG_FILES src/Frontend-Curses/Makefile" ;;
     "src/Frontend-Curses/smuxi-frontend-curses") CONFIG_FILES="$CONFIG_FILES src/Frontend-Curses/smuxi-frontend-curses" ;;
@@ -18922,11 +19292,14 @@ do
     "po-Engine/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Engine/Makefile.in" ;;
     "po-Engine-Campfire/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Engine-Campfire/Makefile.in" ;;
     "po-Engine-IRC/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Engine-IRC/Makefile.in" ;;
+    "po-Engine-JabbR/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Engine-JabbR/Makefile.in" ;;
     "po-Engine-Twitter/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Engine-Twitter/Makefile.in" ;;
+    "po-Engine-XMPP/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Engine-XMPP/Makefile.in" ;;
     "po-Server/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Server/Makefile.in" ;;
     "po-Frontend/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Frontend/Makefile.in" ;;
     "po-Frontend-GNOME/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Frontend-GNOME/Makefile.in" ;;
     "po-Frontend-GNOME-IRC/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Frontend-GNOME-IRC/Makefile.in" ;;
+    "po-Frontend-GNOME-Twitter/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Frontend-GNOME-Twitter/Makefile.in" ;;
     "po-Frontend-GNOME-XMPP/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-Frontend-GNOME-XMPP/Makefile.in" ;;
     "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
 
@@ -20422,7 +20795,7 @@ fi
 
 	* Frontends
 	  ---------
-	  GNOME:               $ENABLE_FRONTEND_GNOME (IRC: $ENABLE_FRONTEND_GNOME_IRC XMPP: $ENABLE_FRONTEND_GNOME_XMPP)
+	  GNOME:               $ENABLE_FRONTEND_GNOME (IRC: $ENABLE_FRONTEND_GNOME_IRC XMPP: $ENABLE_FRONTEND_GNOME_XMPP Twitter: $ENABLE_FRONTEND_GNOME_TWITTER)
 	  + Messaging Menu     (indicate: Ubuntu <= 12.04, messaging-menu: Ubuntu >= 12.04)
 	    - indicate:        $WITH_INDICATE
 	    - messaging-menu:  $WITH_MESSAGINGMENU
@@ -20454,7 +20827,7 @@ $as_echo "
 
 	* Frontends
 	  ---------
-	  GNOME:               $ENABLE_FRONTEND_GNOME (IRC: $ENABLE_FRONTEND_GNOME_IRC XMPP: $ENABLE_FRONTEND_GNOME_XMPP)
+	  GNOME:               $ENABLE_FRONTEND_GNOME (IRC: $ENABLE_FRONTEND_GNOME_IRC XMPP: $ENABLE_FRONTEND_GNOME_XMPP Twitter: $ENABLE_FRONTEND_GNOME_TWITTER)
 	  + Messaging Menu     (indicate: Ubuntu <= 12.04, messaging-menu: Ubuntu >= 12.04)
 	    - indicate:        $WITH_INDICATE
 	    - messaging-menu:  $WITH_MESSAGINGMENU
diff --git a/configure.ac b/configure.ac
index f40e107..5566555 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.54])
-AC_INIT([smuxi], [0.9], [https://smuxi.im/issues/new])
+AC_INIT([smuxi], [0.10], [https://smuxi.im/issues/new])
 # using the --foreign option makes automake less strict about GNU policy 
 AC_CONFIG_MACRO_DIR([.])
 AM_INIT_AUTOMAKE([foreign tar-ustar])
@@ -24,12 +24,14 @@ POSUB="
 	po-Engine
 	po-Engine-Campfire
 	po-Engine-IRC
-	po-Engine-XMPP
 	po-Engine-JabbR
+	po-Engine-Twitter
+	po-Engine-XMPP
 	po-Server
 	po-Frontend
 	po-Frontend-GNOME
 	po-Frontend-GNOME-IRC
+	po-Frontend-GNOME-Twitter
 	po-Frontend-GNOME-XMPP
 	po-Frontend-SWF
 "
@@ -57,7 +59,7 @@ GETTEXT_PACKAGE_ENGINE_CAMPFIRE=smuxi-engine-campfire
 AC_SUBST(GETTEXT_PACKAGE_ENGINE_CAMPFIRE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_ENGINE_CAMPFIRE, "$GETTEXT_PACKAGE_ENGINE_CAMPFIRE", [Gettext package])
 
-GETTEXT_PACKAGE_ENGINE_TWITTER=smuxi-engine-jabbr
+GETTEXT_PACKAGE_ENGINE_JABBR=smuxi-engine-jabbr
 AC_SUBST(GETTEXT_PACKAGE_ENGINE_JABBR)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_ENGINE_JABBR, "$GETTEXT_PACKAGE_ENGINE_JABBR", [Gettext package])
 
@@ -77,6 +79,10 @@ GETTEXT_PACKAGE_FRONTEND_GNOME_IRC=smuxi-frontend-gnome-irc
 AC_SUBST(GETTEXT_PACKAGE_FRONTEND_GNOME_IRC)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_FRONTEND_GNOME_IRC, "$GETTEXT_PACKAGE_FRONTEND_GNOME_IRC", [Gettext package])
 
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER=smuxi-frontend-gnome-twitter
+AC_SUBST(GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER, "$GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER", [Gettext package])
+
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP=smuxi-frontend-gnome-xmpp
 AC_SUBST(GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP, "$GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP", [Gettext package])
@@ -133,7 +139,7 @@ AC_SUBST([dist_version], "$DIST_VERSION")
 SHAMROCK_EXPAND_LIBDIR
 SHAMROCK_CHECK_MONO_MODULE(1.9.1)
 SHAMROCK_FIND_MONO_RUNTIME
-SHAMROCK_FIND_MONO_2_0_COMPILER
+SHAMROCK_FIND_MONO_2_0_COMPILER_OR_HIGHER
 SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
 	System
 	System.Core
@@ -317,17 +323,25 @@ AC_ARG_WITH([dbus],
 	with_dbus=auto
 )
 WITH_DBUS=$with_dbus
-PKG_CHECK_EXISTS([dbus-sharp-1.0], DBUS_SHARP_SUPPORT=yes, DBUS_SHARP_SUPPORT=no)
+PKG_CHECK_EXISTS([dbus-sharp-1.0], DBUS_SHARP1_SUPPORT=yes, DBUS_SHARP1_SUPPORT=no)
+PKG_CHECK_EXISTS([dbus-sharp-2.0], DBUS_SHARP2_SUPPORT=yes, DBUS_SHARP2_SUPPORT=no)
 PKG_CHECK_EXISTS([ndesk-dbus-1.0], NDESK_DBUS_SUPPORT=yes, NDESK_DBUS_SUPPORT=no)
 if test "x$WITH_DBUS" = "xauto"; then
-	if test "x$DBUS_SHARP_SUPPORT" = "xyes"; then
-		WITH_DBUS=$DBUS_SHARP_SUPPORT
+	if test "x$DBUS_SHARP1_SUPPORT" = "xyes"; then
+		WITH_DBUS=$DBUS_SHARP1_SUPPORT
+	elif test "x$DBUS_SHARP2_SUPPORT" = "xyes"; then
+		WITH_DBUS=$DBUS_SHARP2_SUPPORT
 	else
 		WITH_DBUS=$NDESK_DBUS_SUPPORT
 	fi
 fi
 if test "x$WITH_DBUS" = "xyes"; then
-	if test "x$DBUS_SHARP_SUPPORT" = "xyes"; then
+	if test "x$DBUS_SHARP2_SUPPORT" = "xyes"; then
+		PKG_CHECK_MODULES([DBUS_SHARP], [dbus-sharp-2.0])
+		PKG_CHECK_MODULES([DBUS_SHARP_GLIB], [dbus-sharp-glib-2.0])
+		AC_SUBST([DBUS_LIBS], "$DBUS_SHARP_LIBS $DBUS_SHARP_GLIB_LIBS")
+		CSC_FLAGS+=" -define:IPC_DBUS -define:DBUS_SHARP"
+	elif test "x$DBUS_SHARP1_SUPPORT" = "xyes"; then
 		PKG_CHECK_MODULES([DBUS_SHARP], [dbus-sharp-1.0])
 		PKG_CHECK_MODULES([DBUS_SHARP_GLIB], [dbus-sharp-glib-1.0])
 		AC_SUBST([DBUS_LIBS], "$DBUS_SHARP_LIBS $DBUS_SHARP_GLIB_LIBS")
@@ -585,10 +599,12 @@ if test "x$ENABLE_FRONTEND_GNOME" != "xno"; then
 	AC_SUBST(FRONTEND_GNOME_COMPILER_FLAGS)
 	
 	ENABLE_FRONTEND_GNOME_IRC=$ENABLE_ENGINE_IRC;
+	ENABLE_FRONTEND_GNOME_TWITTER=$ENABLE_ENGINE_TWITTER;
 	ENABLE_FRONTEND_GNOME_XMPP=$ENABLE_ENGINE_XMPP;
 fi
 AM_CONDITIONAL(ENABLE_FRONTEND_GNOME, test "x$ENABLE_FRONTEND_GNOME" = "xyes")
 AM_CONDITIONAL(ENABLE_FRONTEND_GNOME_IRC, test "x$ENABLE_FRONTEND_GNOME_IRC" = "xyes")
+AM_CONDITIONAL(ENABLE_FRONTEND_GNOME_TWITTER, test "x$ENABLE_FRONTEND_GNOME_TWITTER" = "xyes")
 AM_CONDITIONAL(ENABLE_FRONTEND_GNOME_XMPP, test "x$ENABLE_FRONTEND_GNOME_XMPP" = "xyes")
 
 AC_ARG_ENABLE([frontend-stfl],
@@ -668,6 +684,7 @@ AC_CONFIG_FILES([
 	src/Frontend-GNOME/Makefile
 	src/Frontend-GNOME/smuxi-frontend-gnome
 	src/Frontend-GNOME-IRC/Makefile
+	src/Frontend-GNOME-Twitter/Makefile
 	src/Frontend-GNOME-XMPP/Makefile
 	src/Frontend-Curses/Makefile
 	src/Frontend-Curses/smuxi-frontend-curses
@@ -684,11 +701,14 @@ AC_CONFIG_FILES([
 	po-Engine/Makefile.in
 	po-Engine-Campfire/Makefile.in
 	po-Engine-IRC/Makefile.in
+	po-Engine-JabbR/Makefile.in
 	po-Engine-Twitter/Makefile.in
+	po-Engine-XMPP/Makefile.in
 	po-Server/Makefile.in
 	po-Frontend/Makefile.in
 	po-Frontend-GNOME/Makefile.in
 	po-Frontend-GNOME-IRC/Makefile.in
+	po-Frontend-GNOME-Twitter/Makefile.in
 	po-Frontend-GNOME-XMPP/Makefile.in
 ])
 
@@ -717,7 +737,7 @@ AC_MSG_RESULT([
 
 	* Frontends
 	  ---------
-	  GNOME:               $ENABLE_FRONTEND_GNOME (IRC: $ENABLE_FRONTEND_GNOME_IRC XMPP: $ENABLE_FRONTEND_GNOME_XMPP)
+	  GNOME:               $ENABLE_FRONTEND_GNOME (IRC: $ENABLE_FRONTEND_GNOME_IRC XMPP: $ENABLE_FRONTEND_GNOME_XMPP Twitter: $ENABLE_FRONTEND_GNOME_TWITTER)
 	  + Messaging Menu     (indicate: Ubuntu <= 12.04, messaging-menu: Ubuntu >= 12.04)
 	    - indicate:        $WITH_INDICATE
 	    - messaging-menu:  $WITH_MESSAGINGMENU
diff --git a/glade/smuxi-frontend-gnome.glade b/glade/smuxi-frontend-gnome.glade
index ff07cb8..d7890f2 100644
--- a/glade/smuxi-frontend-gnome.glade
+++ b/glade/smuxi-frontend-gnome.glade
@@ -1159,7 +1159,6 @@ yy/yyyy = year</property>
                         <property name="spacing">5</property>
                         <child>
                           <widget class="GtkFrame" id="frame1">
-                            <property name="visible">True</property>
                             <property name="label_xalign">0</property>
                             <child>
                               <widget class="GtkAlignment" id="alignment4">
@@ -1593,7 +1592,7 @@ yy/yyyy = year</property>
                       <widget class="GtkLabel" id="label2">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Tabs</property>
+                        <property name="label" translatable="yes">Tree</property>
                       </widget>
                       <packing>
                         <property name="position">1</property>
@@ -1854,7 +1853,6 @@ yy/yyyy = year</property>
                                       <widget class="GtkFrame" id="frame9">
                                         <property name="width_request">152</property>
                                         <property name="height_request">96</property>
-                                        <property name="visible">True</property>
                                         <property name="label_xalign">0</property>
                                         <child>
                                           <widget class="GtkAlignment" id="alignment13">
@@ -2063,7 +2061,6 @@ yy/yyyy = year</property>
                                     </child>
                                     <child>
                                       <widget class="GtkFrame" id="frame10">
-                                        <property name="visible">True</property>
                                         <property name="label_xalign">0</property>
                                         <child>
                                           <widget class="GtkAlignment" id="alignment14">
diff --git a/lib/JabbR/JabbR.Client/JabbRClient.cs b/lib/JabbR/JabbR.Client/JabbRClient.cs
index d84aebd..9b21350 100644
--- a/lib/JabbR/JabbR.Client/JabbRClient.cs
+++ b/lib/JabbR/JabbR.Client/JabbRClient.cs
@@ -20,7 +20,6 @@ namespace JabbR.Client
 
         private IHubProxy _chat;
         private HubConnection _connection;
-        private int _initialized;
 
         public JabbRClient(string url)
             : this(url, authenticationProvider: null, transportFactory: () => new AutoTransport(new DefaultHttpClient()))
@@ -295,11 +294,6 @@ namespace JabbR.Client
 
         private void SubscribeToEvents()
         {
-            if (Interlocked.Exchange(ref _initialized, 1) != 0)
-            {
-                return;
-            }
-
             if (AutoReconnect)
             {
                 Disconnected += OnDisconnected;
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 0026526..28773d2 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -252,6 +252,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/DefaultHttpClient.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/DefaultHttpClient.cs
index 656d1a9..125f080 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/DefaultHttpClient.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/DefaultHttpClient.cs
@@ -11,18 +11,35 @@ namespace Microsoft.AspNet.SignalR.Client.Http
     /// </summary>
     public class DefaultHttpClient : IHttpClient
     {
+
+#if (!WINDOWS_PHONE && !SILVERLIGHT)
+        private readonly string _shortRunningGroup;
+        private readonly string _longRunningGroup;
+
+        public DefaultHttpClient()
+        {
+            string id = Guid.NewGuid().ToString();
+            _shortRunningGroup = "SignalR-short-running-" + id;
+            _longRunningGroup = "SignalR-long-running-" + id;
+        }
+#endif
+
         /// <summary>
         /// Makes an asynchronous http GET request to the specified url.
         /// </summary>
         /// <param name="url">The url to send the request to.</param>
         /// <param name="prepareRequest">A callback that initializes the request with default values.</param>
+        /// <param name="isLongRunning">Indicates whether it is a long running request</param>
         /// <returns>A <see cref="T:Task{IResponse}"/>.</returns>
-        public Task<IResponse> Get(string url, Action<IRequest> prepareRequest)
+        public Task<IResponse> Get(string url, Action<IRequest> prepareRequest, bool isLongRunning)
         {
-            IRequest req = null;
             return HttpHelper.GetAsync(url, request =>
             {
-                req = new HttpWebRequestWrapper(request);
+#if (!WINDOWS_PHONE && !SILVERLIGHT)
+                request.ConnectionGroupName = isLongRunning ? _longRunningGroup : _shortRunningGroup;
+#endif
+
+                var req = new HttpWebRequestWrapper(request);
                 prepareRequest(req);
             }
             ).Then(response => (IResponse)new HttpWebResponseWrapper(response));
@@ -34,13 +51,17 @@ namespace Microsoft.AspNet.SignalR.Client.Http
         /// <param name="url">The url to send the request to.</param>
         /// <param name="prepareRequest">A callback that initializes the request with default values.</param>
         /// <param name="postData">form url encoded data.</param>
+        /// <param name="isLongRunning">Indicates whether it is a long running request</param>
         /// <returns>A <see cref="T:Task{IResponse}"/>.</returns>
-        public Task<IResponse> Post(string url, Action<IRequest> prepareRequest, IDictionary<string, string> postData)
+        public Task<IResponse> Post(string url, Action<IRequest> prepareRequest, IDictionary<string, string> postData, bool isLongRunning)
         {
-            IRequest req = null;
             return HttpHelper.PostAsync(url, request =>
             {
-                req = new HttpWebRequestWrapper(request);
+#if (!WINDOWS_PHONE && !SILVERLIGHT)
+                request.ConnectionGroupName = isLongRunning ? _longRunningGroup : _shortRunningGroup;
+#endif
+
+                var req = new HttpWebRequestWrapper(request);
                 prepareRequest(req);
             },
             postData).Then(response => (IResponse)new HttpWebResponseWrapper(response));
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClient.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClient.cs
index a1804a9..00d878b 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClient.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClient.cs
@@ -17,9 +17,10 @@ namespace Microsoft.AspNet.SignalR.Client.Http
         /// </summary>
         /// <param name="url">The url to send the request to.</param>
         /// <param name="prepareRequest">A callback that initializes the request with default values.</param>
+        /// <param name="isLongRunning">Indicates whether it is a long running request</param>
         /// <returns>A <see cref="T:Task{IResponse}"/>.</returns>
         [SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get", Justification = "Performs a GET request")]
-        Task<IResponse> Get(string url, Action<IRequest> prepareRequest);
+        Task<IResponse> Get(string url, Action<IRequest> prepareRequest, bool isLongRunning);
 
         /// <summary>
         /// Makes an asynchronous http POST request to the specified url.
@@ -27,7 +28,8 @@ namespace Microsoft.AspNet.SignalR.Client.Http
         /// <param name="url">The url to send the request to.</param>
         /// <param name="prepareRequest">A callback that initializes the request with default values.</param>
         /// <param name="postData">form url encoded data.</param>
+        /// <param name="isLongRunning">Indicates whether it is a long running request</param>
         /// <returns>A <see cref="T:Task{IResponse}"/>.</returns>
-        Task<IResponse> Post(string url, Action<IRequest> prepareRequest, IDictionary<string, string> postData);
+        Task<IResponse> Post(string url, Action<IRequest> prepareRequest, IDictionary<string, string> postData, bool isLongRunning);
     }
 }
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClientExtensions.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClientExtensions.cs
index f3b886c..43a611e 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClientExtensions.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Http/IHttpClientExtensions.cs
@@ -7,7 +7,7 @@ namespace Microsoft.AspNet.SignalR.Client.Http
 {
     public static class IHttpClientExtensions
     {
-        public static Task<IResponse> Post(this IHttpClient client, string url, Action<IRequest> prepareRequest)
+        public static Task<IResponse> Post(this IHttpClient client, string url, Action<IRequest> prepareRequest, bool isLongRunning)
         {
             if (client == null)
             {
@@ -24,7 +24,7 @@ namespace Microsoft.AspNet.SignalR.Client.Http
                 throw new ArgumentNullException("prepareRequest");
             }
 
-            return client.Post(url, prepareRequest, postData: null);
+            return client.Post(url, prepareRequest, postData: null, isLongRunning: isLongRunning);
         }
     }
 }
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/HttpBasedTransport.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/HttpBasedTransport.cs
index 818b4aa..81d05c1 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/HttpBasedTransport.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/HttpBasedTransport.cs
@@ -100,7 +100,7 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
                 { "data", data }
             };
 
-            return _httpClient.Post(url, connection.PrepareRequest, postData)
+            return _httpClient.Post(url, connection.PrepareRequest, postData, isLongRunning: false)
                               .Then(response => response.ReadAsString())
                               .Then(raw =>
                               {
@@ -142,7 +142,7 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
 
                     url += TransportHelper.AppendCustomQueryString(connection, url);
 
-                    _httpClient.Post(url, connection.PrepareRequest).Catch((ex, state) =>
+                    _httpClient.Post(url, connection.PrepareRequest, isLongRunning: false).Catch((ex, state) =>
                     {
                         // If there's an error making an http request set the reset event
                         ((HttpBasedTransport)state).CompleteAbort();
@@ -214,15 +214,15 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
                 // Wait for any ongoing aborts to complete
                 // In practice, any aborts should have finished by the time Dispose is called
                 lock (_abortLock)
-                lock (_disposeLock)
-                {
-                    if (!_disposed)
+                    lock (_disposeLock)
                     {
-                        _abortResetEvent.Dispose();
-                        _disposed = true;
+                        if (!_disposed)
+                        {
+                            _abortResetEvent.Dispose();
+                            _disposed = true;
+                        }
                     }
-                }
-           }
+            }
         }
     }
 }
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/LongPolling/PollingRequestHandler.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/LongPolling/PollingRequestHandler.cs
index a782f5c..bffbbd6 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/LongPolling/PollingRequestHandler.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/LongPolling/PollingRequestHandler.cs
@@ -89,7 +89,7 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
                 if (_running == 0)
                 {
                     return;
-                }                
+                }
 
                 // A url is required
                 string url = ResolveUrl();
@@ -102,7 +102,8 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
                     // This is called just prior to posting the request to ensure that any in-flight polling request
                     // is always executed before an OnAfterPoll
                     OnPolling();
-                })
+                }, 
+                isLongRunning: true)
                 .ContinueWith(task =>
                 {
                     var next = TaskAsyncHelper.Empty;
@@ -134,7 +135,7 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
                     },
                     exception);
                 });
-            }            
+            }
         }
 
         /// <summary>
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/ServerSentEventsTransport.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/ServerSentEventsTransport.cs
index ea31181..537a5ec 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/ServerSentEventsTransport.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/ServerSentEventsTransport.cs
@@ -95,7 +95,8 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
                 connection.PrepareRequest(_request);
 
                 _request.Accept = "text/event-stream";
-            }).ContinueWith(task =>
+            },
+            isLongRunning: true).ContinueWith(task =>
             {
                 if (task.IsFaulted)
                 {
diff --git a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/TransportHelper.cs b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/TransportHelper.cs
index 6a34d55..c4d40d3 100644
--- a/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/TransportHelper.cs
+++ b/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Transports/TransportHelper.cs
@@ -32,7 +32,7 @@ namespace Microsoft.AspNet.SignalR.Client.Transports
 #endif
             negotiateUrl += AppendCustomQueryString(connection, negotiateUrl);
 
-            return httpClient.Get(negotiateUrl, connection.PrepareRequest)
+            return httpClient.Get(negotiateUrl, connection.PrepareRequest, isLongRunning: false)
                             .Then(response => response.ReadAsString())
                             .Then(raw =>
                             {
diff --git a/lib/SmartIrc4net/SmartIrc4net.csproj b/lib/SmartIrc4net/SmartIrc4net.csproj
index 9fa8bfb..e217e35 100644
--- a/lib/SmartIrc4net/SmartIrc4net.csproj
+++ b/lib/SmartIrc4net/SmartIrc4net.csproj
@@ -77,6 +77,7 @@
     <Reference Include="System" />
     <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=a5715cc6d5c3540b">
       <Package>log4net</Package>
+      <SpecificVersion>False</SpecificVersion>
     </Reference>
     <Reference Include="System.Core" />
   </ItemGroup>
diff --git a/lib/SmartIrc4net/src/AssemblyInfo.cs b/lib/SmartIrc4net/src/AssemblyInfo.cs
index 78a0aa1..d182aaa 100644
--- a/lib/SmartIrc4net/src/AssemblyInfo.cs
+++ b/lib/SmartIrc4net/src/AssemblyInfo.cs
@@ -45,7 +45,7 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("qNETp")]
 [assembly: AssemblyProduct("SmartIrc4net")]
-[assembly: AssemblyCopyright("2003-2008 (C) Mirco Bauer <meebey at meebey.net>")]
+[assembly: AssemblyCopyright("2003-2013 (C) Mirco Bauer <meebey at meebey.net>")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
@@ -56,7 +56,7 @@ using System.Runtime.InteropServices;
 // You can specify all values by your own or you can build default build and revision
 // numbers with the '*' character (the default):
 
-[assembly: AssemblyVersion("0.4.5.0")]
+[assembly: AssemblyVersion("0.5.0.0")]
 
 // The following attributes specify the key for the sign of your assembly. See the
 // .NET Framework documentation for more information about signing.
diff --git a/lib/SmartIrc4net/src/IrcClient/IrcClient.cs b/lib/SmartIrc4net/src/IrcClient/IrcClient.cs
index 7787ba4..39377a8 100644
--- a/lib/SmartIrc4net/src/IrcClient/IrcClient.cs
+++ b/lib/SmartIrc4net/src/IrcClient/IrcClient.cs
@@ -966,6 +966,7 @@ namespace Meebey.SmartIrc4net
                 case ReplyCode.List:
                 case ReplyCode.ListEnd:
                 case ReplyCode.ErrorNoChannelModes:
+                case ReplyCode.InviteList:
                     channel = linear[3];
                     break;
             }
@@ -1580,10 +1581,13 @@ namespace Meebey.SmartIrc4net
         /// <param name="nickname">The users 'nick' name which may NOT contain spaces</param>
         private bool _RemoveIrcUser(string nickname)
         {
-            if (GetIrcUser(nickname).JoinedChannels.Length == 0) {
-                // he is nowhere else, lets kill him
-                _IrcUsers.Remove(nickname);
-                return true;
+            IrcUser user = GetIrcUser(nickname);
+            if (user != null) {
+                if (user.JoinedChannels.Length == 0) {
+                    // he is nowhere else, lets kill him
+                    _IrcUsers.Remove(nickname);
+                    return true;
+                }
             }
 
             return false;
diff --git a/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs b/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs
index fb40601..4429519 100644
--- a/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs
+++ b/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs
@@ -522,7 +522,6 @@ namespace Meebey.SmartIrc4net
         public IrcConnection()
         {
 #if LOG4NET
-            Logger.Init();
             Logger.Main.Debug("IrcConnection created");
 #endif
             _SendBuffer[Priority.High]        = Queue.Synchronized(new Queue());
@@ -624,27 +623,35 @@ namespace Meebey.SmartIrc4net
                 if (_UseSsl) {
                     RemoteCertificateValidationCallback certValidation;
                     if (_ValidateServerCertificate) {
-                        certValidation = delegate(object sender,
-                            X509Certificate certificate,
-                            X509Chain chain,
-                            SslPolicyErrors sslPolicyErrors) {
-                            if (sslPolicyErrors == SslPolicyErrors.None) {
-                                return true;
-                            }
+                        certValidation = ServicePointManager.ServerCertificateValidationCallback;
+                        if (certValidation == null) {
+                            certValidation = delegate(object sender,
+                                X509Certificate certificate,
+                                X509Chain chain,
+                                SslPolicyErrors sslPolicyErrors) {
+                                if (sslPolicyErrors == SslPolicyErrors.None) {
+                                    return true;
+                                }
 
 #if LOG4NET
-                            Logger.Connection.Error(
-                                "Connect(): Certificate error: " +
-                                sslPolicyErrors
-                            );
+                                Logger.Connection.Error(
+                                    "Connect(): Certificate error: " +
+                                    sslPolicyErrors
+                                );
 #endif
-                            return false;
-                        };
+                                return false;
+                            };
+                        }
                     } else {
                         certValidation = delegate { return true; };
                     }
+                    RemoteCertificateValidationCallback certValidationWithIrcAsSender =
+                        delegate(object sender, X509Certificate certificate,
+                                 X509Chain chain, SslPolicyErrors sslPolicyErrors) {
+                        return certValidation(this, certificate, chain, sslPolicyErrors);
+                    };
                     SslStream sslStream = new SslStream(stream, false,
-                                                        certValidation);
+                                                        certValidationWithIrcAsSender);
                     try {
                         if (_SslClientCertificate != null) {
                             var certs = new X509Certificate2Collection();
diff --git a/lib/SmartIrc4net/src/Logger.cs b/lib/SmartIrc4net/src/Logger.cs
index 31a5d2c..9cf6f94 100644
--- a/lib/SmartIrc4net/src/Logger.cs
+++ b/lib/SmartIrc4net/src/Logger.cs
@@ -26,176 +26,51 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#if LOG4NET
 using System.IO;
 using System.Collections;
+using log4net;
 
 namespace Meebey.SmartIrc4net
 {
-#if LOG4NET
-    /// <summary>
-    ///
-    /// </summary>
-    public enum LogCategory
-    {
-        Main,
-        Connection,
-        Socket,
-        Queue,
-        IrcMessages,
-        MessageTypes,
-        MessageParser,
-        ActionHandler,
-        TimeHandler,
-        MessageHandler,
-        ChannelSyncing,
-        UserSyncing,
-        Modules,
-        Dcc
-    }
-
     /// <summary>
     ///
     /// </summary>
     /// <threadsafety static="true" instance="true" />
-    internal class Logger
+    internal static class Logger
     {
-        private static SortedList _LoggerList = new SortedList();
-        private static bool       _Init;
-        
-        private Logger()
-        {
-        }
-        
-        public static void Init()
-        {
-            if (_Init) {
-                return;
-            }
-            
-            _Init = true;
-            
-            /*
-            FileInfo fi = new FileInfo("SmartIrc4net_log.config");
-            if (fi.Exists) {
-                    log4net.Config.DOMConfigurator.ConfigureAndWatch(fi);
-            } else {
-                log4net.Config.BasicConfigurator.Configure();
-            }
-            */
-            
-            _LoggerList[LogCategory.Main]           = log4net.LogManager.GetLogger("MAIN");
-            _LoggerList[LogCategory.Socket]         = log4net.LogManager.GetLogger("SOCKET");
-            _LoggerList[LogCategory.Queue]          = log4net.LogManager.GetLogger("QUEUE");
-            _LoggerList[LogCategory.Connection]     = log4net.LogManager.GetLogger("CONNECTION");
-            _LoggerList[LogCategory.IrcMessages]    = log4net.LogManager.GetLogger("IRCMESSAGE");
-            _LoggerList[LogCategory.MessageParser]  = log4net.LogManager.GetLogger("MESSAGEPARSER");
-            _LoggerList[LogCategory.MessageTypes]   = log4net.LogManager.GetLogger("MESSAGETYPES");
-            _LoggerList[LogCategory.ActionHandler]  = log4net.LogManager.GetLogger("ACTIONHANDLER");
-            _LoggerList[LogCategory.TimeHandler]    = log4net.LogManager.GetLogger("TIMEHANDLER");
-            _LoggerList[LogCategory.MessageHandler] = log4net.LogManager.GetLogger("MESSAGEHANDLER");
-            _LoggerList[LogCategory.ChannelSyncing] = log4net.LogManager.GetLogger("CHANNELSYNCING");
-            _LoggerList[LogCategory.UserSyncing]    = log4net.LogManager.GetLogger("USERSYNCING");
-            _LoggerList[LogCategory.Modules]        = log4net.LogManager.GetLogger("MODULES");
-            _LoggerList[LogCategory.Dcc]            = log4net.LogManager.GetLogger("DCC");
-        }
-
-        public static log4net.ILog Main
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.Main];
-            }
-        }
-
-        public static log4net.ILog Socket
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.Socket];
-            }
-        }
-
-        public static log4net.ILog Queue
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.Queue];
-            }
-        }
-
-        public static log4net.ILog Connection
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.Connection];
-            }
-        }
-
-        public static log4net.ILog IrcMessages
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.IrcMessages];
-            }
-        }
-
-        public static log4net.ILog MessageParser
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.MessageParser];
-            }
-        }
-
-        public static log4net.ILog MessageTypes
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.MessageTypes];
-            }
-        }
-
-        public static log4net.ILog ActionHandler
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.ActionHandler];
-            }
-        }
-
-        public static log4net.ILog TimeHandler
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.TimeHandler];
-            }
-        }
-
-        public static log4net.ILog MessageHandler
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.MessageHandler];
-            }
-        }
-
-        public static log4net.ILog ChannelSyncing
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.ChannelSyncing];
-            }
-        }
-
-        public static log4net.ILog UserSyncing
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.UserSyncing];
-            }
-        }
-
-        public static log4net.ILog Modules
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.Modules];
-            }
-        }
-
-        public static log4net.ILog Dcc
-        {
-            get {
-                return (log4net.ILog)_LoggerList[LogCategory.Dcc];
-            }
+        static public ILog Main { get; private set; }
+        static public ILog Connection { get; private set; }
+        static public ILog Socket { get; private set; }
+        static public ILog Queue { get; private set; }
+        static public ILog IrcMessages { get; private set; }
+        static public ILog MessageTypes { get; private set; }
+        static public ILog MessageParser { get; private set; }
+        static public ILog ActionHandler { get; private set; }
+        static public ILog TimeHandler { get; private set; }
+        static public ILog MessageHandler { get; private set; }
+        static public ILog ChannelSyncing { get; private set; }
+        static public ILog UserSyncing { get; private set; }
+        static public ILog Modules { get; private set; }
+        static public ILog Dcc { get; private set; }
+
+        static Logger()
+        {
+            Main = log4net.LogManager.GetLogger("MAIN");
+            Socket = log4net.LogManager.GetLogger("SOCKET");
+            Queue = log4net.LogManager.GetLogger("QUEUE");
+            Connection = log4net.LogManager.GetLogger("CONNECTION");
+            IrcMessages = log4net.LogManager.GetLogger("IRCMESSAGE");
+            MessageParser = log4net.LogManager.GetLogger("MESSAGEPARSER");
+            MessageTypes = log4net.LogManager.GetLogger("MESSAGETYPES");
+            ActionHandler = log4net.LogManager.GetLogger("ACTIONHANDLER");
+            TimeHandler = log4net.LogManager.GetLogger("TIMEHANDLER");
+            MessageHandler = log4net.LogManager.GetLogger("MESSAGEHANDLER");
+            ChannelSyncing = log4net.LogManager.GetLogger("CHANNELSYNCING");
+            UserSyncing = log4net.LogManager.GetLogger("USERSYNCING");
+            Modules = log4net.LogManager.GetLogger("MODULES");
+            Dcc = log4net.LogManager.GetLogger("DCC");
         }
     }
-#endif
 }
+#endif
diff --git a/lib/Twitterizer/CommonAssemblyInfo.cs b/lib/Twitterizer/CommonAssemblyInfo.cs
index c701b96..28355d0 100644
--- a/lib/Twitterizer/CommonAssemblyInfo.cs
+++ b/lib/Twitterizer/CommonAssemblyInfo.cs
@@ -51,9 +51,9 @@ using System.Security;
 [assembly: AssemblyCopyright("2010 Patrick 'Ricky' Smith (www.ricky-dev.com)")]
 [assembly: AssemblyTrademark("")]
 
-[assembly: AssemblyVersion("2.4.1.*")]
-[assembly: AssemblyFileVersion("2.4.1.0")]
-[assembly: AssemblyInformationalVersion("2.4.1")]
+[assembly: AssemblyVersion("2.4.2.*")]
+[assembly: AssemblyFileVersion("2.4.2.0")]
+[assembly: AssemblyInformationalVersion("2.4.2")]
 
 #if !SILVERLIGHT
 [assembly: AllowPartiallyTrustedCallers]
diff --git a/lib/Twitterizer/Twitterizer2/Methods/List/DestroyListSubscriber.cs b/lib/Twitterizer/Twitterizer2/Methods/List/DestroyListSubscriber.cs
index 3d8f0d7..53be349 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/List/DestroyListSubscriber.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/List/DestroyListSubscriber.cs
@@ -1,9 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Twitterizer.Commands
+namespace Twitterizer.Commands
 {
     [Core.AuthorizedCommand]
     internal class DestroyListSubscriber : Core.TwitterCommand<TwitterList>
diff --git a/lib/Twitterizer/Twitterizer2/Methods/List/ListMembershipsCommand.cs b/lib/Twitterizer/Twitterizer2/Methods/List/ListMembershipsCommand.cs
index 2ad53f6..9f591ef 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/List/ListMembershipsCommand.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/List/ListMembershipsCommand.cs
@@ -52,13 +52,13 @@ namespace Twitterizer.Commands
         /// Initializes a new instance of the <see cref="ListMembershipsCommand"/> class.
         /// </summary>
         /// <param name="requestTokens">The request tokens.</param>
-        /// <param name="username">The screenname.</param>
+        /// <param name="screenname">The screenname.</param>
         /// <param name="options">The options.</param>
         public ListMembershipsCommand(OAuthTokens requestTokens, string screenname, ListMembershipsOptions options)
             : base(
-                HTTPVerb.GET, 
-                "lists/memberships.json", 
-                requestTokens, 
+                HTTPVerb.GET,
+                "lists/memberships.json",
+                requestTokens,
                 options)
         {
             if (string.IsNullOrEmpty(screenname))
@@ -79,7 +79,7 @@ namespace Twitterizer.Commands
         /// Initializes a new instance of the <see cref="ListMembershipsCommand"/> class.
         /// </summary>
         /// <param name="requestTokens">The request tokens.</param>
-        /// <param name="username">The screenname.</param>
+        /// <param name="userid">The screenname.</param>
         /// <param name="options">The options.</param>
         public ListMembershipsCommand(OAuthTokens requestTokens, decimal userid, ListMembershipsOptions options)
             : base(
diff --git a/lib/Twitterizer/Twitterizer2/Methods/List/TwitterList.cs b/lib/Twitterizer/Twitterizer2/Methods/List/TwitterList.cs
index 5ee627b..542ee60 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/List/TwitterList.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/List/TwitterList.cs
@@ -199,7 +199,7 @@ namespace Twitterizer
             return New(tokens, name, isPublic, description, null);
         }
 
-         /// <summary>
+        /// <summary>
         /// Updates the specified list.
         /// </summary>
         /// <param name="tokens">The oauth tokens.</param>
@@ -329,7 +329,7 @@ namespace Twitterizer
         /// List the lists the specified user has been added to.
         /// </summary>
         /// <param name="tokens">The tokens.</param>
-        /// <param name="username">The screenname.</param>
+        /// <param name="screenname">The screenname.</param>
         /// <param name="options">The options.</param>
         /// <returns>
         /// A <see cref="TwitterListCollection"/> instance.
@@ -344,7 +344,7 @@ namespace Twitterizer
         /// List the lists the specified user has been added to.
         /// </summary>
         /// <param name="tokens">The tokens.</param>
-        /// <param name="username">The screenname.</param>
+        /// <param name="screenname">The screenname.</param>
         /// <returns>
         /// A <see cref="TwitterListCollection"/> instance.
         /// </returns>
@@ -357,7 +357,7 @@ namespace Twitterizer
         /// List the lists the specified user has been added to.
         /// </summary>
         /// <param name="tokens">The tokens.</param>
-        /// <param name="username">The userid.</param>
+        /// <param name="userid">The userid.</param>
         /// <param name="options">The options.</param>
         /// <returns>
         /// A <see cref="TwitterListCollection"/> instance.
@@ -372,7 +372,7 @@ namespace Twitterizer
         /// List the lists the specified user has been added to.
         /// </summary>
         /// <param name="tokens">The tokens.</param>
-        /// <param name="username">The userid.</param>
+        /// <param name="userid">The userid.</param>
         /// <returns>
         /// A <see cref="TwitterListCollection"/> instance.
         /// </returns>
diff --git a/lib/Twitterizer/Twitterizer2/Methods/Search/SearchCommand.cs b/lib/Twitterizer/Twitterizer2/Methods/Search/SearchCommand.cs
index 775b31b..0dcbe73 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/Search/SearchCommand.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/Search/SearchCommand.cs
@@ -42,6 +42,7 @@ namespace Twitterizer.Commands
 #if !SILVERLIGHT
     [Serializable]
 #endif
+    [AuthorizedCommandAttribute]
     internal sealed class SearchCommand : TwitterCommand<TwitterSearchResultCollection>
     {
         #region Constructors
@@ -52,7 +53,7 @@ namespace Twitterizer.Commands
         /// <param name="query">The query.</param>
         /// <param name="options">The options.</param>
         public SearchCommand(OAuthTokens requestTokens, string query, SearchOptions options)
-            : base(HTTPVerb.GET, "search.json", requestTokens, options)
+            : base(HTTPVerb.GET, "search/tweets.json", requestTokens, options)
         {
             if (string.IsNullOrEmpty(query))
             {
@@ -106,19 +107,9 @@ namespace Twitterizer.Commands
                 this.RequestParameters.Add("max_id", options.MaxId.ToString(unitedStatesEnglishCulture));
             }
 
-            if (options.NumberPerPage > 0)
+            if (options.Count > 0)
             {
-                this.RequestParameters.Add("rpp", options.NumberPerPage.ToString(unitedStatesEnglishCulture));
-            }
-
-            if (options.PageNumber > 0)
-            {
-                this.RequestParameters.Add("page", options.PageNumber.ToString(unitedStatesEnglishCulture));
-            }
-
-            if (options.SinceDate > new DateTime())
-            {
-                this.RequestParameters.Add("since", options.SinceDate.ToString("yyyy-MM-dd", unitedStatesEnglishCulture));
+                this.RequestParameters.Add("count", options.Count.ToString(unitedStatesEnglishCulture));
             }
 
             if (options.SinceId > 0)
@@ -131,11 +122,6 @@ namespace Twitterizer.Commands
                 this.RequestParameters.Add("geocode", options.GeoCode);
             }
 
-            if (options.PrefixUsername)
-            {
-                this.RequestParameters.Add("show_user", "true");
-            }
-
             if (options.UntilDate > new DateTime())
             {
                 this.RequestParameters.Add("until", options.UntilDate.ToString("{0:yyyy-MM-dd}", unitedStatesEnglishCulture));
@@ -154,9 +140,6 @@ namespace Twitterizer.Commands
                     break;
             }
 
-            if (options.WithTwitterUserID)
-                this.RequestParameters.Add("with_twitter_user_id", "true");
-
             if (options.IncludeEntities)
                 this.RequestParameters.Add("include_entities", "true");
         }
diff --git a/lib/Twitterizer/Twitterizer2/Methods/Search/SearchOptions.cs b/lib/Twitterizer/Twitterizer2/Methods/Search/SearchOptions.cs
index 6fdef2e..abe402f 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/Search/SearchOptions.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/Search/SearchOptions.cs
@@ -74,7 +74,7 @@ namespace Twitterizer
         /// </summary>
         public SearchOptions()
         {
-            this.APIBaseAddress = "http://search.twitter.com/";
+            UseSSL = true;
         }
 
         /// <summary>
@@ -99,19 +99,7 @@ namespace Twitterizer
         /// Gets or sets the number per page.
         /// </summary>
         /// <value>The number per page.</value>
-        public int NumberPerPage { get; set; }
-
-        /// <summary>
-        /// Gets or sets the page number.
-        /// </summary>
-        /// <value>The page number.</value>
-        public int PageNumber { get; set; }
-
-        /// <summary>
-        /// Gets or sets the since date.
-        /// </summary>
-        /// <value>The since date.</value>
-        public DateTime SinceDate { get; set; }
+        public int Count { get; set; }
 
         /// <summary>
         /// Gets or sets the since id.
@@ -127,14 +115,6 @@ namespace Twitterizer
         public string GeoCode { get; set; }
 
         /// <summary>
-        /// Gets or sets a value indicating whether to prefix the user name to the tweet.
-        /// </summary>
-        /// <value>
-        /// <c>true</c> to prefix the user name to the tweet; otherwise, <c>false</c>.
-        /// </value>
-        public bool PrefixUsername { get; set; }
-
-        /// <summary>
         /// Gets or sets the until date.
         /// </summary>
         /// <value>The until date.</value>
@@ -147,12 +127,6 @@ namespace Twitterizer
         public SearchOptionsResultType ResultType { get; set; }
 
         /// <summary>
-        /// Gets or sets whether to use Twitter.com user ids in the result.
-        /// </summary>
-        /// <value>The type of the result.</value>
-        public bool WithTwitterUserID { get; set; }
-
-        /// <summary>
         /// Gets or sets whether to include some entities in the result.
         /// </summary>
         /// <value>The type of the result.</value>
diff --git a/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearch.cs b/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearch.cs
index 9be9f5e..5925175 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearch.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearch.cs
@@ -34,8 +34,6 @@
 
 namespace Twitterizer
 {
-    using System;
-
     /// <summary>
     /// The Twitter Search Class
     /// </summary>
diff --git a/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResult.cs b/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResult.cs
deleted file mode 100644
index 76702d5..0000000
--- a/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResult.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-//-----------------------------------------------------------------------
-// <copyright file="TwitterSearchResult.cs" company="Patrick 'Ricky' Smith">
-//  This file is part of the Twitterizer library (http://www.twitterizer.net/)
-// 
-//  Copyright (c) 2010, Patrick "Ricky" Smith (ricky at digitally-born.com)
-//  All rights reserved.
-//  
-//  Redistribution and use in source and binary forms, with or without modification, are 
-//  permitted provided that the following conditions are met:
-// 
-//  - Redistributions of source code must retain the above copyright notice, this list 
-//    of conditions and the following disclaimer.
-//  - Redistributions in binary form must reproduce the above copyright notice, this list 
-//    of conditions and the following disclaimer in the documentation and/or other 
-//    materials provided with the distribution.
-//  - Neither the name of the Twitterizer nor the names of its contributors may be 
-//    used to endorse or promote products derived from this software without specific 
-//    prior written permission.
-// 
-//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
-//  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
-//  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
-//  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
-//  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
-//  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-//  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-//  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-//  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
-//  POSSIBILITY OF SUCH DAMAGE.
-// </copyright>
-// <author>Ricky Smith</author>
-// <summary>The twitter search result class.</summary>
-//-----------------------------------------------------------------------
-
-namespace Twitterizer
-{
-    using System;
-    using System.Runtime.Serialization;
-    using Newtonsoft.Json;
-
-    /// <summary>
-    /// The Twitter Search Result class.
-    /// </summary>
-#if !SILVERLIGHT
-    [Serializable]
-#endif
-    [JsonObject(MemberSerialization = MemberSerialization.OptIn)]
-    public class TwitterSearchResult : Core.TwitterObject
-    {
-        /// <summary>
-        /// Gets or sets the profile image URL.
-        /// </summary>
-        /// <value>The profile image URL.</value>
-        [JsonProperty(PropertyName = "profile_image_url")]
-        public string ProfileImageLocation { get; set; }
-
-        /// <summary>
-        /// Gets or sets the created date.
-        /// </summary>
-        /// <value>The created date.</value>
-        [JsonProperty(PropertyName = "created_at")]
-        public DateTime CreatedDate { get; set; }
-
-        /// <summary>
-        /// Gets or sets the display name of the from user.
-        /// </summary>
-        /// <value>The name of from user screen.</value>
-        [JsonProperty(PropertyName = "from_user_name")]
-        public string FromUserDisplayName { get; set; }
-
-        /// <summary>
-        /// Gets or sets the screen name of the from user.
-        /// </summary>
-        /// <value>The name of from user screen.</value>
-        [JsonProperty(PropertyName = "from_user")]
-        public string FromUserScreenName { get; set; }
-
-        /// <summary>
-        /// Gets or sets from user id.
-        /// </summary>
-        /// <value>From user id.</value>
-        [JsonProperty(PropertyName = "from_user_id")]
-        public decimal? FromUserId { get; set; }
-
-        /// <summary>
-        /// Gets or sets the display name of the to user.
-        /// </summary>
-        /// <value>The name of to user screen.</value>
-        [JsonProperty(PropertyName = "to_user_name")]
-        public string ToUserDisplayName { get; set; }
-
-        /// <summary>
-        /// Gets or sets the screen name of to user.
-        /// </summary>
-        /// <value>The name of to user screen.</value>
-        [JsonProperty(PropertyName = "to_user")]
-        public string ToUserScreenName { get; set; }
-
-        /// <summary>
-        /// Gets or sets to user id.
-        /// </summary>
-        /// <value>To user id.</value>
-        [JsonProperty(PropertyName = "to_user_id")]
-        public decimal? ToUserId { get; set; }
-
-        /// <summary>
-        /// Gets or sets the status text.
-        /// </summary>
-        /// <value>The status text.</value>
-        [JsonProperty(PropertyName = "text")]
-        public string Text { get; set; }
-
-        /// <summary>
-        /// Returns the status text with HTML links to users, urls, and hashtags.
-        /// </summary>
-        /// <remarks>This will only work if you specify <see cref="SearchOptions.IncludeEntities"/> = <c>true</c> when executing the search.</remarks>
-        /// <returns></returns>
-        public string LinkifiedText()
-        {
-            return TwitterStatus.LinkifiedText(Entities, Text);
-        }
-
-        /// <summary>
-        /// Gets or sets the status id.
-        /// </summary>
-        /// <value>The status id.</value>
-        [JsonProperty(PropertyName = "id")]
-        public decimal Id { get; set; }
-
-        /// <summary>
-        /// Gets or sets the source.
-        /// </summary>
-        /// <value>The source.</value>
-        [JsonProperty(PropertyName = "source")]
-        public string Source { get; set; }
-
-        /// <summary>
-        /// Gets or sets the language.
-        /// </summary>
-        /// <value>The language.</value>
-        [JsonProperty(PropertyName = "iso_language_code")]
-        public string Language { get; set; }
-
-        /// <summary>
-        /// Gets or sets the geo location associated with the result.
-        /// </summary>
-        /// <value>The geo location data.</value>
-        [JsonProperty(PropertyName = "geo")]
-        public TwitterGeo Geo { get; set; }
-
-        /// <summary>
-        /// Gets or sets the location.
-        /// </summary>
-        /// <value>The location.</value>
-        [JsonProperty(PropertyName = "location")]
-        public string Location { get; set; }
-
-        /// <summary>
-        /// Gets or sets the status id the status is in reply to.
-        /// </summary>
-        /// <value>The status id.</value>
-        [DataMember, JsonProperty(PropertyName = "in_reply_to_status_id")]
-        public decimal? InReplyToStatusId { get; set; }
-
-        /// <summary>
-        /// Gets or sets the entities.
-        /// </summary>
-        /// <value>The entities.</value>
-        [DataMember]
-        [JsonProperty(PropertyName = "entities")]
-        [JsonConverter(typeof(Entities.TwitterEntityCollection.Converter))]
-        public Entities.TwitterEntityCollection Entities { get; set; }
-    }
-}
diff --git a/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResultCollection.cs b/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResultCollection.cs
index 8fe1bc3..dc69e93 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResultCollection.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/Search/TwitterSearchResultCollection.cs
@@ -46,19 +46,94 @@ namespace Twitterizer
 #if !SILVERLIGHT
     [Serializable]
 #endif
-    public class TwitterSearchResultCollection : Core.TwitterCollection<TwitterSearchResult>, ITwitterObject
+    public class TwitterSearchResultCollection : Core.TwitterCollection<TwitterStatus>, ITwitterObject
     {
         /// <summary>
+        /// Gets or sets the completed_in.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public double CompletedIn { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the max_id.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public long MaxId { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the max_id as a string.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public string MaxIdStr { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the since_id.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public long SinceId { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the since_id_str.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public string SinceIdStr { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the query.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public string Query { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the refresh URL.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public string RefreshUrl { get; internal set; }
+        
+        /// <summary>
+        /// Gets or sets the next results URL.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public string NextResults { get; internal set; }
+
+        /// <summary>
+        /// Gets or sets the number of tweets.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        public int SearchCount { get; internal set; }
+
+        /// <summary>
         /// Deserializes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
         /// <returns></returns>
         internal static TwitterSearchResultCollection Deserialize(JObject value)
         {
-            if (value == null || value["results"] == null)
+            if (value == null || value["statuses"] == null)
                 return null;
 
-            return JsonConvert.DeserializeObject<TwitterSearchResultCollection>(value["results"].ToString());
+            TwitterSearchResultCollection result = JsonConvert.DeserializeObject<TwitterSearchResultCollection>(value["statuses"].ToString());
+            result.CompletedIn = value.SelectToken("search_metadata.completed_in").Value<double>();
+            result.MaxId = value.SelectToken("search_metadata.max_id").Value<long>();
+            result.MaxIdStr = value.SelectToken("search_metadata.max_id_str").Value<string>();
+            result.SinceId = value.SelectToken("search_metadata.since_id").Value<long>();
+            result.SinceIdStr = value.SelectToken("search_metadata.since_id_str").Value<string>();
+            result.Query = value.SelectToken("search_metadata.query").Value<string>();
+            result.RefreshUrl = value.SelectToken("search_metadata.refresh_url").Value<string>();
+            // bugged Twitter API docs: https://dev.twitter.com/docs/api/1.1/get/search/tweets
+            //result.NextResults = value.SelectToken("search_metadata.next_results").Value<string>();
+            result.SearchCount = value.SelectToken("search_metadata.count").Value<int>();
+
+            return result;
         }
     }
 }
diff --git a/lib/Twitterizer/Twitterizer2/Methods/Timeline/TwitterTimeline.cs b/lib/Twitterizer/Twitterizer2/Methods/Timeline/TwitterTimeline.cs
index 43704e0..f6be6c2 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/Timeline/TwitterTimeline.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/Timeline/TwitterTimeline.cs
@@ -34,7 +34,6 @@
 
 namespace Twitterizer
 {
-    using System;
     using Twitterizer.Core;
 
     /// <summary>
diff --git a/lib/Twitterizer/Twitterizer2/Methods/User/LookupUsersOptions.cs b/lib/Twitterizer/Twitterizer2/Methods/User/LookupUsersOptions.cs
index d862caa..eb65b35 100644
--- a/lib/Twitterizer/Twitterizer2/Methods/User/LookupUsersOptions.cs
+++ b/lib/Twitterizer/Twitterizer2/Methods/User/LookupUsersOptions.cs
@@ -1,6 +1,5 @@
 namespace Twitterizer
 {
-    using System.Collections.Generic;
     using System.Collections.ObjectModel;
 
     /// <summary>
diff --git a/lib/Twitterizer/Twitterizer2/OAuth/WebRequestBuilder.cs b/lib/Twitterizer/Twitterizer2/OAuth/WebRequestBuilder.cs
index cfd9e32..115a4b4 100644
--- a/lib/Twitterizer/Twitterizer2/OAuth/WebRequestBuilder.cs
+++ b/lib/Twitterizer/Twitterizer2/OAuth/WebRequestBuilder.cs
@@ -112,13 +112,13 @@ namespace Twitterizer
         /// Gets or sets the UserAgent.
         /// </summary>
         /// <value>The User Agent.</value>
-        private string userAgent;
+        private readonly string userAgent;
 
         /// <summary>
         /// Gets or sets the Basic Auth Credentials.
         /// </summary>
         /// <value>The Basic Auth Credentials.</value>
-        private NetworkCredential networkCredentials;
+        private readonly NetworkCredential networkCredentials;
 
         /// <summary>
         /// Gets or sets the Multipart config
diff --git a/lib/Twitterizer/Twitterizer2/Properties/AssemblyInfo.cs b/lib/Twitterizer/Twitterizer2/Properties/AssemblyInfo.cs
index 9043d81..89813bd 100644
--- a/lib/Twitterizer/Twitterizer2/Properties/AssemblyInfo.cs
+++ b/lib/Twitterizer/Twitterizer2/Properties/AssemblyInfo.cs
@@ -30,10 +30,7 @@
 // </copyright>
 //-----------------------------------------------------------------------
 
-using System;
-using System.Reflection;
 using System.Runtime.InteropServices;
-using System.Security;
 
 // Uncomment this line for building a .NET 4.0 assembly
 // [assembly: SecurityRules(SecurityRuleSet.Level1)]
diff --git a/lib/Twitterizer/Twitterizer2/Twitterizer2.csproj b/lib/Twitterizer/Twitterizer2/Twitterizer2.csproj
index d77171c..98b7e15 100644
--- a/lib/Twitterizer/Twitterizer2/Twitterizer2.csproj
+++ b/lib/Twitterizer/Twitterizer2/Twitterizer2.csproj
@@ -284,7 +284,6 @@
     <Compile Include="Methods\Friendship\TwitterRelationshipUser.cs" />
     <Compile Include="Methods\TwitterResultTypeEnum.cs" />
     <Compile Include="Methods\Search\TwitterSearch.cs" />
-    <Compile Include="Methods\Search\TwitterSearchResult.cs" />
     <Compile Include="Methods\Search\TwitterSearchResultCollection.cs" />
     <Compile Include="Methods\Tweets\TwitterStatus.cs" />
     <Compile Include="Methods\Tweets\TwitterStatusCollection.cs" />
diff --git a/lib/agsxmpp/agsxmpp/protocol/client/Handler.cs b/lib/agsxmpp/agsxmpp/Exceptions/StartTlsException.cs
similarity index 80%
copy from lib/agsxmpp/agsxmpp/protocol/client/Handler.cs
copy to lib/agsxmpp/agsxmpp/Exceptions/StartTlsException.cs
index 7510acc..3979ae3 100644
--- a/lib/agsxmpp/agsxmpp/protocol/client/Handler.cs
+++ b/lib/agsxmpp/agsxmpp/Exceptions/StartTlsException.cs
@@ -21,9 +21,17 @@
 
 using System;
 
-namespace agsXMPP.protocol.client
+namespace agsXMPP.Exceptions
 {
-    public delegate void MessageHandler (object sender, Message msg);
-    public delegate void PresenceHandler(object sender, Presence pres);
-    public delegate void IqHandler      (object sender, IQ iq);
-}
+    public class StartTlsException : Exception
+    {
+        public StartTlsException()
+        {
+        }
+
+        public StartTlsException(string msg) : base(msg)
+        {
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/lib/agsxmpp/agsxmpp/IqGrabber.cs b/lib/agsxmpp/agsxmpp/IqGrabber.cs
index 5b9f4bc..ec60d79 100644
--- a/lib/agsxmpp/agsxmpp/IqGrabber.cs
+++ b/lib/agsxmpp/agsxmpp/IqGrabber.cs
@@ -31,8 +31,6 @@ using agsXMPP.Xml;
 
 namespace agsXMPP
 {
-    public delegate void IqCB(object sender, IQ iq, object data);
-	
 	public class IqGrabber : PacketGrabber
 	{
 		/// <summary>
@@ -41,15 +39,14 @@ namespace agsXMPP
 		/// <param name="conn"></param>
 		public IqGrabber(XmppClientConnection conn)
 		{
-			m_connection		= conn;
-			conn.OnIq	+= new IqHandler(OnIq);
+            m_connection = conn;
+            conn.OnIq += OnIq;
 		}
 
         public IqGrabber(XmppComponentConnection conn)
         {
             m_connection = conn;
-			conn.OnIq += new agsXMPP.protocol.component.IqHandler(OnIq);
-
+            conn.OnIq += OnIq;
         }        
         
 #if !CF
@@ -73,24 +70,21 @@ namespace agsXMPP
 		/// </summary>
 		/// <param name="sender"></param>
 		/// <param name="e"></param>
-		public void OnIq(object sender, agsXMPP.protocol.client.IQ iq)
-		{			
-			if (iq == null)
-				return;
-
+		public void OnIq(object sender, IQEventArgs e)
+		{
             // the tracker handles on iq responses, which are either result or error
-            if (iq.Type != IqType.error && iq.Type != IqType.result)
+            if (e.IQ.Type != IqType.error && e.IQ.Type != IqType.result)
                 return;
 
-			string id = iq.Id;
+            string id = e.IQ.Id;
 			if(id == null)
 				return;
 		    
-            TrackerData td;
+            IqHandler td;
 
 			lock (m_grabbing)
 			{
-				td = (TrackerData) m_grabbing[id];
+				td = (IqHandler) m_grabbing[id];
 
 				if (td == null)
 				{
@@ -99,7 +93,7 @@ namespace agsXMPP
 				m_grabbing.Remove(id);
 			}
                        
-            td.cb(this, iq, td.data);           
+            td(this, e);
 		}
 
         /// <summary>
@@ -107,28 +101,19 @@ namespace agsXMPP
         /// </summary>
         /// <param name="iq">The iq to send</param>
         /// <param name="cb">the callback function which gets raised for the response</param>
-        public void SendIq(IQ iq, IqCB cb)
+        public void SendIq(IQ iq, IqHandler cb)
         {
-            SendIq(iq, cb, null);
-        }
-
-        /// <summary>
-        /// Send an IQ Request and store the object with callback in the Hashtable
-        /// </summary>
-        /// <param name="iq">The iq to send</param>
-        /// <param name="cb">the callback function which gets raised for the response</param>
-        /// <param name="cbArg">additional object for arguments</param>
-		public void SendIq(IQ iq, IqCB cb, object cbArg)
-		{
             // check if the callback is null, in case of wrong usage of this class
-            if (cb != null)
-            {
-                TrackerData td = new TrackerData();
-                td.cb = cb;
-                td.data = cbArg;
+            if (cb == null) {
+                throw new ArgumentNullException("cb");
+            }
 
-                m_grabbing[iq.Id] = td;
+            if (iq == null) {
+                throw new ArgumentNullException("cb");
             }
+
+            m_grabbing[iq.Id] = cb;
+
 			m_connection.Send(iq);
 		}
 
@@ -144,7 +129,13 @@ namespace agsXMPP
             synchronousResponse = null;
             AutoResetEvent are = new AutoResetEvent(false);
 
-            SendIq(iq, new IqCB(SynchronousIqResult), are);
+            SendIq(iq,
+                   delegate (object sender, IQEventArgs e)
+                    {
+                        e.Handled = true;
+                        are.Set();
+                    }
+            );
 
             if (!are.WaitOne(timeout, true))
             {
@@ -171,24 +162,6 @@ namespace agsXMPP
             return SendIq(iq, m_SynchronousTimeout);
         }
 
-        /// <summary>
-        /// Callback for synchronous iq grabbing
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="iq"></param>
-        /// <param name="data"></param>
-        private void SynchronousIqResult(object sender, IQ iq, object data)
-        {
-            synchronousResponse = iq;
-            
-            AutoResetEvent are = data as AutoResetEvent;
-            are.Set();
-        }		
 #endif
-		private class TrackerData
-		{
-			public IqCB  cb;
-			public object data;
-		}		
 	}
 }
\ No newline at end of file
diff --git a/lib/agsxmpp/agsxmpp/Net/BaseSocket.cs b/lib/agsxmpp/agsxmpp/Net/BaseSocket.cs
index 0e12747..62e4327 100644
--- a/lib/agsxmpp/agsxmpp/Net/BaseSocket.cs
+++ b/lib/agsxmpp/agsxmpp/Net/BaseSocket.cs
@@ -77,6 +77,8 @@ namespace agsXMPP.Net
         private long    m_ConnectTimeout    = 10000; // 10 seconds is default
 
         internal XmppConnection  m_XmppCon = null;
+
+        public bool IsEncrypted { get; protected set; }
         
 		public BaseSocket()
 		{
diff --git a/lib/agsxmpp/agsxmpp/Net/ClientSocket.cs b/lib/agsxmpp/agsxmpp/Net/ClientSocket.cs
index bc43919..8f0c21e 100644
--- a/lib/agsxmpp/agsxmpp/Net/ClientSocket.cs
+++ b/lib/agsxmpp/agsxmpp/Net/ClientSocket.cs
@@ -183,6 +183,7 @@ namespace agsXMPP.Net
 
             // Socket is never compressed at startup
             m_Compressed = false;
+            IsEncrypted = false;
 
             m_ReadBuffer = null;
             m_ReadBuffer = new byte[BUFFERSIZE];
@@ -277,6 +278,7 @@ namespace agsXMPP.Net
 
             m_NetworkStream = m_SSLStream;
 			m_SSL = true;
+            IsEncrypted = true;
             
             return true;
 		}
diff --git a/lib/agsxmpp/agsxmpp/Sasl/SaslHandler.cs b/lib/agsxmpp/agsxmpp/Sasl/SaslHandler.cs
index b45ab20..5a78cba 100644
--- a/lib/agsxmpp/agsxmpp/Sasl/SaslHandler.cs
+++ b/lib/agsxmpp/agsxmpp/Sasl/SaslHandler.cs
@@ -26,6 +26,7 @@ using agsXMPP.protocol.iq.session;
 using agsXMPP.protocol.sasl;
 using agsXMPP.protocol.stream;
 using agsXMPP.Xml.Dom;
+using agsXMPP.Xml;
 
 namespace agsXMPP.Sasl
 {
@@ -62,12 +63,13 @@ namespace agsXMPP.Sasl
 			Dispose(false);
 		}
 		
-		internal void OnStreamElement(object sender, Node e)
+		internal void OnStreamElement(object sender, ElementEventArgs eventArgs)
 		{
             if (m_XmppClient == null) return;
             if ( m_XmppClient.XmppConnectionState == XmppConnectionState.Securing
                 || m_XmppClient.XmppConnectionState == XmppConnectionState.StartCompression)
                 return;
+            var e = eventArgs.Element;
 
 			if (e is Features)
 			{
@@ -161,7 +163,7 @@ namespace agsXMPP.Sasl
 
 					    BindIq bIq = string.IsNullOrEmpty(m_XmppClient.Resource) ? new BindIq(IqType.set) : new BindIq(IqType.set, m_XmppClient.Resource);						
 						
-                        m_XmppClient.IqGrabber.SendIq(bIq, BindResult, null);					
+                        m_XmppClient.IqGrabber.SendIq(bIq, BindResult);
 					}
 				}
 								
@@ -198,11 +200,12 @@ namespace agsXMPP.Sasl
 
             BindIq bIq = string.IsNullOrEmpty(m_XmppClient.Resource) ? new BindIq(IqType.set) : new BindIq(IqType.set, m_XmppClient.Resource);
 
-            m_XmppClient.IqGrabber.SendIq(bIq, BindResult, null);	
+            m_XmppClient.IqGrabber.SendIq(bIq, BindResult);
         }
 
-		private void BindResult(object sender, IQ iq, object data)
+		private void BindResult(object sender, IQEventArgs e)
 		{	
+            var iq = e.IQ;
 			// Once the server has generated a resource identifier for the client or accepted the resource 
 			// identifier provided by the client, it MUST return an IQ stanza of type "result" 
 			// to the client, which MUST include a <jid/> child element that specifies the full JID for 
@@ -234,8 +237,8 @@ namespace agsXMPP.Sasl
 				// success, so start the session now
 				m_XmppClient.DoChangeXmppConnectionState(XmppConnectionState.StartSession);
 				SessionIq sIq = new SessionIq(IqType.set, new Jid(m_XmppClient.Server));
-				m_XmppClient.IqGrabber.SendIq(sIq, SessionResult, null);
-
+				m_XmppClient.IqGrabber.SendIq(sIq, SessionResult);
+                e.Handled = true;
 			}
 			else if (iq.Type == IqType.error)
 			{
@@ -244,15 +247,15 @@ namespace agsXMPP.Sasl
 			}			
 		}
 
-		private void SessionResult(object sender, IQ iq, object data)
+        private void SessionResult(object sender, IQEventArgs e)
 		{
-			if (iq.Type == IqType.result)
+            if (e.IQ.Type == IqType.result)
 			{
 				m_XmppClient.DoChangeXmppConnectionState(XmppConnectionState.SessionStarted);
 				m_XmppClient.RaiseOnLogin();
-
+                e.Handled = true;
 			}
-			else if (iq.Type == IqType.error)
+            else if (e.IQ.Type == IqType.error)
 			{
 
 			}
diff --git a/lib/agsxmpp/agsxmpp/Xml/Dom/DomLoader.cs b/lib/agsxmpp/agsxmpp/Xml/Dom/DomLoader.cs
index 744d8b2..5110264 100644
--- a/lib/agsxmpp/agsxmpp/Xml/Dom/DomLoader.cs
+++ b/lib/agsxmpp/agsxmpp/Xml/Dom/DomLoader.cs
@@ -33,7 +33,7 @@ namespace agsXMPP.Xml.Dom
             var sp =new StreamParser();
 
             sp.OnStreamStart += (sender, node) => doc.ChildNodes.Add(node);
-            sp.OnStreamElement += (sender, node) => doc.RootElement.ChildNodes.Add(node);
+            sp.OnStreamElement += (sender, args) => doc.RootElement.ChildNodes.Add(args.Element);
             
             
 			byte[] b = System.Text.Encoding.UTF8.GetBytes(xml);
diff --git a/lib/agsxmpp/agsxmpp/Xml/StreamParser.cs b/lib/agsxmpp/agsxmpp/Xml/StreamParser.cs
index 688336a..2d4f09f 100644
--- a/lib/agsxmpp/agsxmpp/Xml/StreamParser.cs
+++ b/lib/agsxmpp/agsxmpp/Xml/StreamParser.cs
@@ -46,7 +46,8 @@ namespace agsXMPP.Xml
 		// Stream Event Handlers
 		public event StreamHandler		OnStreamStart;
 		public event StreamHandler		OnStreamEnd;
-		public event StreamHandler		OnStreamElement;
+        public event EventHandler<ElementEventArgs> OnStreamElement;
+        public event EventHandler<UnhandledElementEventArgs> StreamElementNotHandled;
 		
         /// <summary>
         /// Event for XML-Stream errors
@@ -358,8 +359,13 @@ namespace agsXMPP.Xml
         {
             try
             {
-                if (OnStreamElement != null)
-                    OnStreamElement(this, el);
+                if (OnStreamElement != null) {
+                    var eventArgs = new ElementEventArgs(el);
+                    OnStreamElement(this, eventArgs);
+                    if (!eventArgs.Handled) {
+                        OnStreamElementNotHandled(el);
+                    }
+                }
             }
             catch (Exception ex)
             {
@@ -368,6 +374,13 @@ namespace agsXMPP.Xml
             }
         }
 
+        void OnStreamElementNotHandled(Element el)
+        {
+            if (StreamElementNotHandled != null) {
+                StreamElementNotHandled(this, new UnhandledElementEventArgs(el));
+            }
+        }
+
         private string NormalizeAttributeValue(byte[] buf, int offset, int length)
         {            
             if (length == 0)
@@ -480,4 +493,31 @@ namespace agsXMPP.Xml
 			}
 		}
 	}
+    
+    public class UnhandledElementEventArgs : EventArgs
+    {
+        public Element Element { get; private set; }
+
+        public UnhandledElementEventArgs(Element el)
+        {
+            if (el == null) {
+                throw new ArgumentNullException("el");
+            }
+            Element = el;
+        }
+    }
+
+    public class ElementEventArgs : EventArgs
+    {
+        public Element Element { get; private set; }
+        public bool Handled { get; set; }
+
+        public ElementEventArgs(Element el)
+        {
+            if (el == null) {
+                throw new ArgumentNullException("el");
+            }
+            Element = el;
+        }
+    }
 }
\ No newline at end of file
diff --git a/lib/agsxmpp/agsxmpp/XmppClientConnection.cs b/lib/agsxmpp/agsxmpp/XmppClientConnection.cs
index 29f2e92..72a2951 100644
--- a/lib/agsxmpp/agsxmpp/XmppClientConnection.cs
+++ b/lib/agsxmpp/agsxmpp/XmppClientConnection.cs
@@ -24,6 +24,7 @@ using System.IO;
 using System.Text;
 using System.Collections;
 using System.Collections.Specialized;
+using System.ComponentModel;
 using System.Threading;
 using System.Net;
 using System.Net.Sockets;
@@ -102,8 +103,10 @@ namespace agsXMPP
 		private		bool					m_UseSSL			= false;
 #if (CF || CF_2) && !BCCRYPTO
         private     bool                    m_UseStartTLS       = false;
+        private bool f_ForceStartTLS = false;
 #else
         private		bool					m_UseStartTLS		= true;
+        private bool f_ForceStartTLS = true;
 #endif
         private     bool                    m_UseCompression    = false;
 		internal	bool					m_Binded			= false;
@@ -311,6 +314,7 @@ namespace agsXMPP
         /// <summary>
 		/// use "old style" ssl for this connection (Port 5223).
 		/// </summary>
+        [Obsolete("Try to use ForceStartTls instead")]
 		public bool UseSSL
 		{
 			get	{ return m_UseSSL; }
@@ -326,6 +330,16 @@ namespace agsXMPP
 #endif
 		}
 
+        public bool ForceStartTls {
+            get {
+                return f_ForceStartTLS;
+            }
+            set {
+                UseStartTLS = UseStartTLS || value;
+                f_ForceStartTLS = value;
+            }
+        }
+
 		/// <summary>
 		/// use Start-TLS on this connection when the server supports it. Make sure UseSSL is false when 
 		/// you want to use this feature.
@@ -500,6 +514,8 @@ namespace agsXMPP
         		
 		public event ObjectHandler				OnClose;
 
+        public event EventHandler<SendingServiceUnavailableEventArgs> SendingServiceUnavailable;
+
 
         /// <summary>
         /// This event is raised when a response to a roster query is received. The roster query contains the contact list.
@@ -709,6 +725,12 @@ namespace agsXMPP
 				CleanupSession();
 		}
 
+        protected virtual void OnSendingServiceUnavailable(SendingServiceUnavailableEventArgs e)
+        {
+            if (SendingServiceUnavailable != null)
+                SendingServiceUnavailable(this, e);
+        }
+
         public override void SocketOnError(object sender, Exception ex)
         {
             base.SocketOnError(sender, ex);
@@ -978,7 +1000,7 @@ namespace agsXMPP
 			AuthIq iq = new AuthIq(IqType.get, new Jid(base.Server));
 			iq.Query.Username = this.m_Username;
 
-			IqGrabber.SendIq(iq, new IqCB(OnGetAuthInfo), null);
+            IqGrabber.SendIq(iq, OnGetAuthInfo);
 		}
 
 		/// <summary>
@@ -1024,7 +1046,9 @@ namespace agsXMPP
 			regIq.Query.Username = this.m_Username;
 			regIq.Query.Password = newPass;
 			
-			IqGrabber.SendIq(regIq, new IqCB(OnChangePasswordResult), newPass);
+            IqGrabber.SendIq(regIq,
+                (object sender, IQEventArgs e) => OnChangePasswordResult(e, newPass)
+            );
 		}
 
 		/// <summary>
@@ -1033,17 +1057,18 @@ namespace agsXMPP
 		/// <param name="sender"></param>
 		/// <param name="iq"></param>
 		/// <param name="data">contains the new password</param>
-		private void OnChangePasswordResult(object sender, IQ iq, object data)
+        private void OnChangePasswordResult(IQEventArgs e, string newPass)
 		{
-			if (iq.Type == IqType.result)
+            if (e.IQ.Type == IqType.result)
 			{
 				if(OnPasswordChanged!=null)
 					OnPasswordChanged(this);
 				
 				// Set the new password in the Password property on sucess
-				m_Password = (string) data;
+                m_Password = newPass;
+                e.Handled = true;
 			}
-			else if (iq.Type == IqType.error)
+            else if (e.IQ.Type == IqType.error)
 			{
 				/*
 				The server or service SHOULD NOT return the original XML sent in 
@@ -1078,7 +1103,7 @@ namespace agsXMPP
 				*/
 
 				if(OnRegisterError!=null)
-					OnRegisterError(this, iq);
+                    OnRegisterError(this, e.IQ);
 			}
         }
 
@@ -1089,23 +1114,26 @@ namespace agsXMPP
         /// requests the registration fields
         /// </summary>
         /// <param name="obj">object which contains the features node which we need later for login again</param>
-        private void GetRegistrationFields(object data)
+        void GetRegistrationFields(Element elem)
         {
             // <iq type='get' id='reg1'>
             //  <query xmlns='jabber:iq:register'/>
             // </iq>
 
             RegisterIq regIq = new RegisterIq(IqType.get, new Jid(base.Server));
-            IqGrabber.SendIq(regIq, new IqCB(OnRegistrationFieldsResult), data);
+            IqGrabber.SendIq(regIq,
+                (object sender, IQEventArgs e) =>
+                    OnRegistrationFieldsResult(e, elem)
+            );
         }
 
-        private void OnRegistrationFieldsResult(object sender, IQ iq, object data)
+        void OnRegistrationFieldsResult(IQEventArgs e, Element data)
         {
-            if (iq.Type != IqType.error)
+            if (e.IQ.Type != IqType.error)
             {
-                if (iq.Query is Register)
+                if (e.IQ.Query is Register)
                 {
-                    RegisterEventArgs args = new RegisterEventArgs(iq.Query as Register);
+                    RegisterEventArgs args = new RegisterEventArgs(e.IQ.Query as Register);
                     if (OnRegisterInformation != null)
                         OnRegisterInformation(this, args);
 
@@ -1125,17 +1153,21 @@ namespace agsXMPP
                     {
                         regIq.Query = args.Register;
                     }
-                    IqGrabber.SendIq(regIq, new IqCB(OnRegisterResult), data);
+                    IqGrabber.SendIq(regIq,
+                        (object sender, IQEventArgs ev) => OnRegisterResult(ev, data)
+                    );
+                    e.Handled = true;
                 }
             }
             else
             {
                 if (OnRegisterError != null)
-                    OnRegisterError(this, iq);
+                    OnRegisterError(this, e.IQ);
+                e.Handled = true; // not really
             }
         }
         
-        private void OnRegisterResult(object sender, IQ iq, object data)
+        private void OnRegisterResult(IQEventArgs e, Element data)
 		{
 			/*
 			Example 6. Host Informs Entity of Failed Registration (Username Conflict)
@@ -1164,7 +1196,7 @@ namespace agsXMPP
 			</error>
 			</iq>
 			*/
-            if (iq.Type == IqType.result)
+            if (e.IQ.Type == IqType.result)
             {
                 DoChangeXmppConnectionState(XmppConnectionState.Registered);
                 if (OnRegistered != null)
@@ -1174,23 +1206,28 @@ namespace agsXMPP
                 { 
                     // init sasl login
                     InitSaslHandler();
-                    m_SaslHandler.OnStreamElement(this, data as Node);
+                    var eventArgs = new ElementEventArgs(data);
+                    m_SaslHandler.OnStreamElement(this, eventArgs);
+                    if (eventArgs.Handled) {
+                        e.Handled = true;
+                    }
                 }
                 else
                 {
                     // old jabber style login
                     RequestLoginInfo();
+                    e.Handled = true;
                 }
             }
-            else if (iq.Type == IqType.error)
+            else if (e.IQ.Type == IqType.error)
             {
                 if (OnRegisterError != null)
-                    OnRegisterError(this, iq);
+                    OnRegisterError(this, e.IQ);
             }
         }
         #endregion
 
-        private void OnGetAuthInfo(object sender, IQ iq, object data)
+        private void OnGetAuthInfo(object sender, IQEventArgs e)
 		{
 			// We get smth like this and should add password (digest) and ressource
 			// Recv:<iq type="result" id="MX_7"><query xmlns="jabber:iq:auth"><username>gnauck</username><password/><digest/><resource/></query></iq>
@@ -1198,7 +1235,15 @@ namespace agsXMPP
 			//			<query xmlns='jabber:iq:auth'><username>gnauck</username><digest>27c05d464e3f908db3b2ca1729674bfddb28daf2</digest><resource>Office</resource></query>
 			//		</iq>
 			// Recv:<iq id="mx_login" type="result"/> 
+
+            e.Handled = true;
 			
+            var iq = e.IQ;
+            if (iq.Error != null) {
+                FireOnAuthError(iq);
+                return;
+            }
+
 			iq.GenerateId();
 			iq.SwitchDirection();
 			iq.Type = IqType.set;
@@ -1208,7 +1253,7 @@ namespace agsXMPP
 			auth.Resource = this.m_Resource;
 			auth.SetAuth(this.m_Username, this.m_Password, this.StreamId);
 			
-			IqGrabber.SendIq(iq, new IqCB(OnAuthenticate), null);
+            IqGrabber.SendIq(iq, OnAuthenticate);
 		}
 
 		/// <summary>
@@ -1231,15 +1276,16 @@ namespace agsXMPP
 		public void RequestAgents()
 		{			
 			AgentsIq iq = new AgentsIq(IqType.get, new Jid(base.Server));
-			IqGrabber.SendIq(iq, new IqCB(OnAgents), null);
+            IqGrabber.SendIq(iq, OnAgents);
 		}
 
-		private void OnAgents(object sender, IQ iq, object data)
+        private void OnAgents(object sender, IQEventArgs e)
 		{	
+            e.Handled = true;
 			if (OnAgentStart != null)
 				OnAgentStart(this);
 						
-			Agents agents = iq.Query as Agents;
+            Agents agents = e.IQ.Query as Agents;
 			if (agents != null)
 			{
 				foreach (Agent a in agents.GetAgents())
@@ -1251,6 +1297,7 @@ namespace agsXMPP
 
 			if (OnAgentEnd != null)
 				OnAgentEnd(this);			
+            e.Handled = true;
 		}
 		#endregion
 
@@ -1289,14 +1336,15 @@ namespace agsXMPP
 		}
 		#endregion       
 
-		private void OnAuthenticate(object sender, IQ iq, object data)
+        private void OnAuthenticate(object sender, IQEventArgs e)
 		{			
-			if (iq.Type == IqType.result)
+            if (e.IQ.Type == IqType.result)
 			{
                 m_Authenticated = true;
                 RaiseOnLogin();                
+                e.Handled = true;
 			}
-			else if(iq.Type == IqType.error)
+            else if(e.IQ.Type == IqType.error)
 			{
 				/* 
 				 * <iq xmlns="jabber:client" id="agsXMPP_2" type="error">
@@ -1310,7 +1358,7 @@ namespace agsXMPP
 				 * 
 				 */
                 if (OnAuthError!=null)
-					OnAuthError(this, iq);
+                    OnAuthError(this, e.IQ);
 			}
 			
 		}
@@ -1383,32 +1431,44 @@ namespace agsXMPP
 				CleanupSession();
 		}
 
-		public override void StreamParserOnStreamElement(object sender, Node e)
+        public override void StreamParserOnStreamElement(object sender, ElementEventArgs eventArgs)
 		{
-			base.StreamParserOnStreamElement(sender, e);
+            base.StreamParserOnStreamElement(sender, eventArgs);
+            bool handled = false;
+            var e = eventArgs.Element;
 
 			if (e is IQ)
 			{
-				if (OnIq != null)
-					OnIq(this, e as IQ);
-					
-				IQ iq = e as IQ;
+                IQ iq = e as IQ;
+
+                if (OnIq != null) {
+                    var ev = new IQEventArgs(iq);
+                    OnIq(this, ev);
+                    handled = handled || ev.Handled;
+                }
+
 				if ( iq != null && iq.Query != null)
 				{
 					// Roster
-                    if (iq.Query is Roster)
+                    if (iq.Query is Roster) {
                         OnRosterIQ(iq);                   
+                        handled = true;
+                    }
 				}	
 			}
 			else if (e is Message)
 			{
-				if (OnMessage != null)
+                if (OnMessage != null) {
 					OnMessage(this, e as Message);
+                    handled = true;
+                }
 			}
 			else if (e is Presence)
 			{
-				if (OnPresence != null)
+                if (OnPresence != null) {
 					OnPresence(this, e as Presence);
+                    handled = true;
+                }
 			}
 			else if (e is protocol.stream.Features)
 			{
@@ -1421,6 +1481,11 @@ namespace agsXMPP
 					DoChangeXmppConnectionState(XmppConnectionState.Securing);
 					Send(new StartTls());
 				}
+                // connection is not encrypted, doesn't support starttls but tls is forced
+                else if (!ClientSocket.IsEncrypted && !f.SupportsStartTls && ForceStartTls) {
+                    FireOnError(this, new StartTlsException("StartTls is not supported on this server"));
+                    Close();
+                }
                 else
 #endif
                 if (m_UseCompression &&
@@ -1457,6 +1522,7 @@ namespace agsXMPP
                 {
 				    SendStreamHeader(false);
 				    DoChangeXmppConnectionState(XmppConnectionState.Authenticating);
+                    handled = true;
                 }
             }
 #endif
@@ -1469,15 +1535,45 @@ namespace agsXMPP
                 SendStreamHeader(false);
 
                 DoChangeXmppConnectionState(XmppConnectionState.Compressed);
+                handled = true;
 			}
             else if (e is agsXMPP.protocol.Error)
             {
-                if (OnStreamError != null)
+                if (OnStreamError != null) {
                     OnStreamError(this, e as Element);
+                    handled = true;
+                }
             }
 
+            if (handled) {
+                eventArgs.Handled = true;
+            }
 		}
 
+        public override void StreamParserStreamElementNotHandled(object sender, UnhandledElementEventArgs eventArgs)
+        {
+            var stanza = eventArgs.Element as protocol.Base.StanzaWithError;
+            if (stanza == null) {
+                // what should we do here?
+                return;
+            }
+            if (stanza.Error != null) {
+                // don't respond to error messages with service unavailable
+                return;
+            }
+            stanza.Error = new protocol.client.Error(ErrorCondition.ServiceUnavailable);
+            stanza.SwitchDirection();
+
+            // allow the client to prevent this message (privacy/security reasons)
+            var ev = new SendingServiceUnavailableEventArgs(stanza);
+            OnSendingServiceUnavailable(ev);
+            if (ev.Cancel) {
+                // the client has cancelled this
+                return;
+            }
+            Send(eventArgs.Element);
+        }
+
 		public override void StreamParserOnStreamError(object sender, Exception ex)
 		{
 			base.StreamParserOnStreamError(sender, ex);
@@ -1599,4 +1695,15 @@ namespace agsXMPP
 		}
 		#endregion        
 	}
+
+    public class SendingServiceUnavailableEventArgs : CancelEventArgs
+    {
+        public protocol.Base.StanzaWithError Stanza { get; protected set; }
+
+        public SendingServiceUnavailableEventArgs(protocol.Base.StanzaWithError stanza)
+            :base()
+        {
+            Stanza = stanza;
+        }
+    }
 }
\ No newline at end of file
diff --git a/lib/agsxmpp/agsxmpp/XmppComponentConnection.cs b/lib/agsxmpp/agsxmpp/XmppComponentConnection.cs
index 8b2d274..b7c6eac 100644
--- a/lib/agsxmpp/agsxmpp/XmppComponentConnection.cs
+++ b/lib/agsxmpp/agsxmpp/XmppComponentConnection.cs
@@ -25,6 +25,7 @@ using agsXMPP.Net;
 using agsXMPP.Xml.Dom;
 using agsXMPP.protocol;
 using agsXMPP.protocol.component;
+using agsXMPP.Xml;
 
 
 namespace agsXMPP
@@ -243,9 +244,10 @@ namespace agsXMPP
 				CleanupSession();
 		}
 
-		public override void StreamParserOnStreamElement(object sender, Node e)
+        public override void StreamParserOnStreamElement(object sender, ElementEventArgs eventArgs)
 		{
-			base.StreamParserOnStreamElement (sender, e);
+            base.StreamParserOnStreamElement (sender, eventArgs);
+            var e = eventArgs.Element;
 
 			if (e is Handshake)
 			{
@@ -256,11 +258,13 @@ namespace agsXMPP
 
                 if (KeepAlive)
                     CreateKeepAliveTimer();
+                eventArgs.Handled  = true;
 			}
 			else if (e is Route)
 			{
 				if (OnRoute != null)
 					OnRoute(this, e as Route);
+                eventArgs.Handled = true;
 			}
             else if (e is protocol.Error)
             {
@@ -279,21 +283,31 @@ namespace agsXMPP
                             OnStreamError(this, e as Element);
                         break;
                 }                
+                eventArgs.Handled = true;
             }
             else if (e is Message)
             {
-                if (OnMessage != null)
+                if (OnMessage != null) {
                     OnMessage(this, e as Message);
+                    eventArgs.Handled = true;
+                }
             }
             else if (e is Presence)
             {
-                if (OnPresence != null)
+                if (OnPresence != null) {
                     OnPresence(this, e as Presence);
+                    eventArgs.Handled = true;
+                }
             }
             else if (e is IQ)
             {
-                if (OnIq != null)
-                    OnIq(this, e as IQ);
+                if (OnIq != null) {
+                    var iqEventArgs = new protocol.client.IQEventArgs((IQ)e);
+                    OnIq(this, iqEventArgs);
+                    if (iqEventArgs.Handled) {
+                        eventArgs.Handled = true;
+                    }
+                }
             }
 		
 		}
diff --git a/lib/agsxmpp/agsxmpp/XmppConnection.cs b/lib/agsxmpp/agsxmpp/XmppConnection.cs
index 57cdf79..50ed63e 100644
--- a/lib/agsxmpp/agsxmpp/XmppConnection.cs
+++ b/lib/agsxmpp/agsxmpp/XmppConnection.cs
@@ -83,7 +83,8 @@ namespace agsXMPP
 			
             m_StreamParser.OnStreamStart		+= new StreamHandler(StreamParserOnStreamStart);
 			m_StreamParser.OnStreamEnd			+= new StreamHandler(StreamParserOnStreamEnd);
-			m_StreamParser.OnStreamElement		+= new StreamHandler(StreamParserOnStreamElement);
+            m_StreamParser.OnStreamElement += StreamParserOnStreamElement;
+            m_StreamParser.StreamElementNotHandled += StreamParserStreamElementNotHandled;
 			m_StreamParser.OnStreamError		+= new StreamError	(StreamParserOnStreamError);
             m_StreamParser.OnError              += new ErrorHandler (StreamParserOnError);            
 		}
@@ -302,9 +303,13 @@ namespace agsXMPP
 			this.FireOnReadXml(this, xml);
 		}
 
-		public virtual  void StreamParserOnStreamElement	(object sender, Node e)
+        public virtual void StreamParserStreamElementNotHandled(object sender, UnhandledElementEventArgs eventArgs)
+        {
+        }
+
+        public virtual void StreamParserOnStreamElement(object sender, ElementEventArgs e)
 		{
-			this.FireOnReadXml(this, e.ToString());
+            this.FireOnReadXml(this, e.Element.ToString());
 		}
 		public virtual void StreamParserOnStreamError		(object sender, Exception ex)
 		{
diff --git a/lib/agsxmpp/agsxmpp/agsxmpp.csproj b/lib/agsxmpp/agsxmpp/agsxmpp.csproj
index aeb1956..ab4f6a9 100644
--- a/lib/agsxmpp/agsxmpp/agsxmpp.csproj
+++ b/lib/agsxmpp/agsxmpp/agsxmpp.csproj
@@ -399,6 +399,8 @@
     <Compile Include="XmppClientConnectionState.cs" />
     <Compile Include="XmppComponentConnection.cs" />
     <Compile Include="XmppConnection.cs" />
+    <Compile Include="protocol\Base\StanzaWithError.cs" />
+    <Compile Include="Exceptions\StartTlsException.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Xml\Xpnet\copying.txt" />
diff --git a/lib/agsxmpp/agsxmpp/protocol/Base/Stanza.cs b/lib/agsxmpp/agsxmpp/protocol/Base/Stanza.cs
index c2feb2d..090470e 100644
--- a/lib/agsxmpp/agsxmpp/protocol/Base/Stanza.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/Base/Stanza.cs
@@ -93,25 +93,5 @@ namespace agsXMPP.protocol.Base
             get { return GetAttribute("xml:lang"); }
             set { SetAttribute("xml:lang", value); }
         }
-        		
-        ///// <summary>
-        ///// Error Child Element
-        ///// </summary>
-        //public agsXMPP.protocol.client.Error Error
-        //{
-        //    get
-        //    {
-        //        return SelectSingleElement(typeof(agsXMPP.protocol.client.Error)) as agsXMPP.protocol.client.Error;
-
-        //    }
-        //    set
-        //    {
-        //        if (HasTag(typeof(agsXMPP.protocol.client.Error)))
-        //            RemoveTag(typeof(agsXMPP.protocol.client.Error));
-                
-        //        if (value != null)
-        //            this.AddChild(value);
-        //    }
-        //}
 	}
 }
\ No newline at end of file
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/lib/agsxmpp/agsxmpp/protocol/Base/StanzaWithError.cs
similarity index 50%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to lib/agsxmpp/agsxmpp/protocol/Base/StanzaWithError.cs
index a68e741..5554ad6 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/Base/StanzaWithError.cs
@@ -1,37 +1,55 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Oliver Schneider <smuxi at oli-obk.de>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
 
-namespace Smuxi.Engine
+using agsXMPP.Xml;
+using agsXMPP.Xml.Dom;
+using agsXMPP.protocol.client;
+using ClientError = agsXMPP.protocol.client.Error;
+
+namespace agsXMPP.protocol.Base
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public class StanzaWithError : Stanza
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
 
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        /// <summary>
+        /// Error Child Element
+        /// </summary>
+        public ClientError Error
         {
+            get
+            {
+                return SelectSingleElement(typeof(ClientError)) as ClientError;
+            }
+            set
+            {
+                // set type automatically to error
+                SetAttribute("type", "error");
+
+                if (HasTag(typeof(ClientError)))
+                    RemoveTag(typeof(ClientError));
+
+                if (value != null)
+                    this.AddChild(value);
+            }
         }
     }
 }
+
diff --git a/lib/agsxmpp/agsxmpp/protocol/client/Error.cs b/lib/agsxmpp/agsxmpp/protocol/client/Error.cs
index f2f9bcc..485e41d 100644
--- a/lib/agsxmpp/agsxmpp/protocol/client/Error.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/client/Error.cs
@@ -252,78 +252,6 @@ namespace agsXMPP.protocol.client
 		wait
 	}
 
-
-	/// <summary>
-	/// The legacy Error Code
-	/// </summary>
-	public enum ErrorCode
-	{		
-		/// <summary>
-		/// Bad request
-		/// </summary>
-		BadRequest				= 400,
-		/// <summary>
-		/// Unauthorized
-		/// </summary>
-		Unauthorized			= 401,
-		/// <summary>
-		/// Payment required
-		/// </summary>
-		PaymentRequired			= 402,
-		/// <summary>
-		/// Forbidden
-		/// </summary>
-		Forbidden				= 403,
-		/// <summary>
-		/// Not found
-		/// </summary>
-		NotFound				= 404,
-		/// <summary>
-		/// Not allowed
-		/// </summary>
-		NotAllowed				= 405,
-		/// <summary>
-		/// Not acceptable
-		/// </summary>
-		NotAcceptable			= 406,
-		/// <summary>
-		/// Registration required 
-		/// </summary>
-		RegistrationRequired	= 407,
-		/// <summary>
-		/// Request timeout
-		/// </summary>
-		RequestTimeout			= 408,
-		/// <summary>
-		/// Conflict
-		/// </summary>
-		Conflict                = 409,
-		/// <summary>
-		/// Internal server error
-		/// </summary>
-		InternalServerError		= 500,
-		/// <summary>
-		/// Not implemented
-		/// </summary>
-		NotImplemented			= 501,
-		/// <summary>
-		/// Remote server error
-		/// </summary>
-		RemoteServerError		= 502,
-		/// <summary>
-		/// Service unavailable
-		/// </summary>
-		ServiceUnavailable		= 503,
-		/// <summary>
-		/// Remote server timeout
-		/// </summary>
-		RemoteServerTimeout		= 504,
-		/// <summary>
-		/// Disconnected
-		/// </summary>
-		Disconnected            = 510
-	}
-
 	
 	/// <summary>
 	/// Summary description for Error.
@@ -338,20 +266,6 @@ namespace agsXMPP.protocol.client
 			this.TagName    = "error";
         }
 
-        #region << Obsolete Constructors >>
-        [Obsolete("Please don't use old Jabber style errors. Use XMPP ErrorCondition instead")]
-		public Error(int code) : this()
-		{			
-			this.SetAttribute("code", code.ToString());
-		}
-
-        [Obsolete("Please don't use old Jabber style errors. Use XMPP ErrorCondition instead")]
-        public Error(ErrorCode code) : this()
-        {
-            this.SetAttribute("code", (int)code);
-        }
-        #endregion
-
         /// <summary>
 		/// Creates an error Element according the the condition
 		/// The type attrib as added automatically as decribed in the XMPP specs
@@ -410,18 +324,6 @@ namespace agsXMPP.protocol.client
                 SetTag("text", value, Uri.STANZAS);
             }
         }
-
-		public ErrorCode Code
-		{
-			get
-			{
-				return (ErrorCode) GetAttributeInt("code");
-			}
-			set
-			{
-				SetAttribute("code", (int) value);
-			}
-		}
        
 		public ErrorType Type
 		{
diff --git a/lib/agsxmpp/agsxmpp/protocol/client/Handler.cs b/lib/agsxmpp/agsxmpp/protocol/client/Handler.cs
index 7510acc..cb7d4cf 100644
--- a/lib/agsxmpp/agsxmpp/protocol/client/Handler.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/client/Handler.cs
@@ -25,5 +25,19 @@ namespace agsXMPP.protocol.client
 {
     public delegate void MessageHandler (object sender, Message msg);
     public delegate void PresenceHandler(object sender, Presence pres);
-    public delegate void IqHandler      (object sender, IQ iq);
+    public delegate void IqHandler      (object sender, IQEventArgs args);
+
+    public class IQEventArgs : EventArgs
+    {
+        public IQ IQ { get; private set; }
+        public bool Handled { get; set; }
+
+        public IQEventArgs(IQ iq)
+        {
+            if (iq == null) {
+                throw new ArgumentNullException("iq");
+            }
+            IQ = iq;
+        }
+    }
 }
diff --git a/lib/agsxmpp/agsxmpp/protocol/client/IQ.cs b/lib/agsxmpp/agsxmpp/protocol/client/IQ.cs
index 6124cbe..dfea99f 100644
--- a/lib/agsxmpp/agsxmpp/protocol/client/IQ.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/client/IQ.cs
@@ -44,7 +44,7 @@ namespace agsXMPP.protocol.client
 	/// <summary>
 	/// Iq Stanza.
 	/// </summary>
-	public class IQ : Base.Stanza
+	public class IQ : Base.StanzaWithError
 	{        
         #region << Constructors >>
         public IQ()
@@ -102,29 +102,6 @@ namespace agsXMPP.protocol.client
 			}
 		}
 
-        /// <summary>
-        /// Error Child Element
-        /// </summary>
-        public agsXMPP.protocol.client.Error Error
-        {
-            get
-            {
-                return SelectSingleElement(typeof(agsXMPP.protocol.client.Error)) as agsXMPP.protocol.client.Error;
-
-            }
-            set
-            {
-                // set type automatically to error
-                Type = IqType.error;
-
-                if (HasTag(typeof(agsXMPP.protocol.client.Error)))
-                    RemoveTag(typeof(agsXMPP.protocol.client.Error));
-
-                if (value != null)
-                    this.AddChild(value);
-            }
-        }
-
 		/// <summary>
 		/// Get or Set the VCard if it is a Vcard IQ
 		/// </summary>
diff --git a/lib/agsxmpp/agsxmpp/protocol/client/Message.cs b/lib/agsxmpp/agsxmpp/protocol/client/Message.cs
index 4dd0142..95798e6 100644
--- a/lib/agsxmpp/agsxmpp/protocol/client/Message.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/client/Message.cs
@@ -32,7 +32,7 @@ namespace agsXMPP.protocol.client
 	/// <summary>
 	/// This class represents a XMPP message.
 	/// </summary>
-	public class Message : Base.Stanza
+	public class Message : Base.StanzaWithError
 	{
 		#region << Constructors >>
 		public Message()
@@ -241,29 +241,6 @@ namespace agsXMPP.protocol.client
 		}
 
         /// <summary>
-        /// Error Child Element
-        /// </summary>
-        public agsXMPP.protocol.client.Error Error
-        {
-            get
-            {
-                return SelectSingleElement(typeof(agsXMPP.protocol.client.Error)) as agsXMPP.protocol.client.Error;
-
-            }
-            set
-            {
-                // set type automatically to error
-                Type = MessageType.error;
-
-                if (HasTag(typeof(agsXMPP.protocol.client.Error)))
-                    RemoveTag(typeof(agsXMPP.protocol.client.Error));
-
-                if (value != null)
-                    this.AddChild(value);
-            }
-        }
-
-        /// <summary>
         /// The html part of the message if you want to support the html-im Jep. This part of the message is optional.
         /// </summary>
         public Html Html
diff --git a/lib/agsxmpp/agsxmpp/protocol/client/Presence.cs b/lib/agsxmpp/agsxmpp/protocol/client/Presence.cs
index acb9a3c..e136cff 100644
--- a/lib/agsxmpp/agsxmpp/protocol/client/Presence.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/client/Presence.cs
@@ -30,7 +30,7 @@ namespace agsXMPP.protocol.client
 	/// <summary>
 	/// Zusammenfassung f�r Presence.
 	/// </summary>
-	public class Presence : Base.Stanza
+	public class Presence : Base.StanzaWithError
     {
         #region << Constructors >>
         public Presence()
@@ -87,29 +87,6 @@ namespace agsXMPP.protocol.client
 		}
 
         /// <summary>
-        /// Error Child Element
-        /// </summary>
-        public agsXMPP.protocol.client.Error Error
-        {
-            get
-            {
-                return SelectSingleElement(typeof(agsXMPP.protocol.client.Error)) as agsXMPP.protocol.client.Error;
-
-            }
-            set
-            {
-                // set type automatically to error
-                Type = PresenceType.error;
-
-                if (HasTag(typeof(agsXMPP.protocol.client.Error)))
-                    RemoveTag(typeof(agsXMPP.protocol.client.Error));
-
-                if (value != null)
-                    this.AddChild(value);
-            }
-        }
-
-        /// <summary>
         /// The OPTIONAL show element contains non-human-readable XML character data that specifies the particular availability
         /// status of an entity or specific resource.
         /// </summary>
diff --git a/lib/agsxmpp/agsxmpp/protocol/component/Error.cs b/lib/agsxmpp/agsxmpp/protocol/component/Error.cs
index 6b2b7ee..ede89ab 100644
--- a/lib/agsxmpp/agsxmpp/protocol/component/Error.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/component/Error.cs
@@ -32,18 +32,6 @@ namespace agsXMPP.protocol.component
         {
             this.Namespace = Uri.ACCEPT;
         }
-                
-        public Error(int code)
-            : base(code)
-        {
-            this.Namespace = Uri.ACCEPT;
-        }
-
-        public Error(agsXMPP.protocol.client.ErrorCode code)
-            : base(code)
-        {
-            this.Namespace = Uri.ACCEPT;
-        }
 
         public Error(agsXMPP.protocol.client.ErrorType type)
             : base(type)
diff --git a/lib/agsxmpp/agsxmpp/protocol/component/Handler.cs b/lib/agsxmpp/agsxmpp/protocol/component/Handler.cs
index 17d1659..a194ee2 100644
--- a/lib/agsxmpp/agsxmpp/protocol/component/Handler.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/component/Handler.cs
@@ -25,5 +25,5 @@ namespace agsXMPP.protocol.component
 {
     public delegate void MessageHandler     (object sender, Message msg);
     public delegate void PresenceHandler    (object sender, Presence pres);
-    public delegate void IqHandler          (object sender, IQ iq);
+    public delegate void IqHandler      (object sender, client.IQEventArgs args);
 }
diff --git a/lib/agsxmpp/agsxmpp/protocol/extensions/bookmarks/BookmarkManager.cs b/lib/agsxmpp/agsxmpp/protocol/extensions/bookmarks/BookmarkManager.cs
index fc177e8..4c77773 100644
--- a/lib/agsxmpp/agsxmpp/protocol/extensions/bookmarks/BookmarkManager.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/extensions/bookmarks/BookmarkManager.cs
@@ -40,16 +40,7 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// </summary>
         public void RequestBookmarks()
         {
-            RequestBookmarks(null, null);
-        }
-
-        /// <summary>
-        /// Request the bookmarks from the storage on the server
-        /// </summary>
-        /// <param name="cb"></param>
-        public void RequestBookmarks(IqCB cb)
-        {
-            RequestBookmarks(cb, null);
+            RequestBookmarks(null);
         }
 
         /// <summary>
@@ -57,14 +48,14 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// </summary>
         /// <param name="cb"></param>
         /// <param name="cbArgs"></param>
-        public void RequestBookmarks(IqCB cb, object cbArgs)
+        public void RequestBookmarks(IqHandler cb)
         {
             StorageIq siq = new StorageIq(IqType.get);
                       
             if (cb == null)
                 m_connection.Send(siq);
             else
-                m_connection.IqGrabber.SendIq(siq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(siq, cb);
         }
         #endregion
 
@@ -76,17 +67,7 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// <param name="urls"></param>
         public void StoreBookmarks(Url[] urls)
         {
-            StoreBookmarks(urls, null, null, null);
-        }
-
-        /// <summary>
-        /// Send booksmarks to the server storage
-        /// </summary>
-        /// <param name="urls"></param>
-        /// <param name="cb"></param>
-        public void StoreBookmarks(Url[] urls, IqCB cb)
-        {
-            StoreBookmarks(urls, null, cb, null);
+            StoreBookmarks(urls, null, null);
         }
 
         /// <summary>
@@ -95,9 +76,9 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// <param name="urls"></param>
         /// <param name="cb"></param>
         /// <param name="cbArgs"></param>
-        public void StoreBookmarks(Url[] urls, IqCB cb, object cbArgs)
+        public void StoreBookmarks(Url[] urls, IqHandler cb)
         {
-            StoreBookmarks(urls, null, cb, cbArgs);
+            StoreBookmarks(urls, null, cb);
         }
 
         /// <summary>
@@ -106,17 +87,7 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// <param name="conferences"></param>
         public void StoreBookmarks(Conference[] conferences)
         {
-            StoreBookmarks(null, conferences, null, null);
-        }
-
-        /// <summary>
-        /// Send booksmarks to the server storage
-        /// </summary>
-        /// <param name="conferences"></param>
-        /// <param name="cb"></param>
-        public void StoreBookmarks(Conference[] conferences, IqCB cb)
-        {
-            StoreBookmarks(null, conferences, cb, null);
+            StoreBookmarks(null, conferences, null);
         }
 
         /// <summary>
@@ -125,9 +96,9 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// <param name="conferences"></param>
         /// <param name="cb"></param>
         /// <param name="cbArgs"></param>
-        public void StoreBookmarks(Conference[] conferences, IqCB cb, object cbArgs)
+        public void StoreBookmarks(Conference[] conferences, IqHandler cb)
         {
-            StoreBookmarks(null, conferences, cb, cbArgs);
+            StoreBookmarks(null, conferences, cb);
         }
 
         /// <summary>
@@ -137,18 +108,7 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// <param name="conferences"></param>
         public void StoreBookmarks(Url[] urls, Conference[] conferences)
         {
-            StoreBookmarks(urls, conferences, null, null);
-        }
-
-        /// <summary>
-        /// Send booksmarks to the server storage
-        /// </summary>
-        /// <param name="urls"></param>
-        /// <param name="conferences"></param>
-        /// <param name="cb"></param>
-        public void StoreBookmarks(Url[] urls, Conference[] conferences, IqCB cb)
-        {
-            StoreBookmarks(urls, conferences, cb, null);
+            StoreBookmarks(urls, conferences, null);
         }
 
         /// <summary>
@@ -158,7 +118,7 @@ namespace agsXMPP.protocol.extensions.bookmarks
         /// <param name="conferences"></param>
         /// <param name="cb"></param>
         /// <param name="cbArgs"></param>
-        public void StoreBookmarks(Url[] urls, Conference[] conferences, IqCB cb, object cbArgs)
+        public void StoreBookmarks(Url[] urls, Conference[] conferences, IqHandler cb)
         {
             StorageIq siq = new StorageIq(IqType.set);
             
@@ -171,7 +131,7 @@ namespace agsXMPP.protocol.extensions.bookmarks
             if (cb == null)
                 m_connection.Send(siq);
             else
-                m_connection.IqGrabber.SendIq(siq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(siq, cb);
         }
         #endregion
     }
diff --git a/lib/agsxmpp/agsxmpp/protocol/extensions/pubsub/PubSubManager.cs b/lib/agsxmpp/agsxmpp/protocol/extensions/pubsub/PubSubManager.cs
index 5e60527..80906f4 100644
--- a/lib/agsxmpp/agsxmpp/protocol/extensions/pubsub/PubSubManager.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/extensions/pubsub/PubSubManager.cs
@@ -54,25 +54,20 @@ namespace agsXMPP.protocol.extensions.pubsub
         
         public void CreateInstantNode(Jid to)
         {
-            CreateInstantNode(to, null, null, null);
+            CreateInstantNode(to, null, null);
         }
 
         public void CreateInstantNode(Jid to, Jid from)
         {
-            CreateInstantNode(to, from, null, null);
+            CreateInstantNode(to, from, null);
         }
 
-        public void CreateInstantNode(Jid to, Jid from, IqCB cb)
+        public void CreateInstantNode(Jid to, IqHandler cb)
         {
-            CreateInstantNode(to, from, cb, null);
+            CreateInstantNode(to, null, cb);
         }
 
-        public void CreateInstantNode(Jid to, IqCB cb)
-        {
-            CreateInstantNode(to, null, cb, null);
-        }
-
-        public void CreateInstantNode(Jid to, Jid from, IqCB cb,object cbArgs)
+        public void CreateInstantNode(Jid to, Jid from, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -84,7 +79,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -109,12 +104,12 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="node"></param>
         public void CreateNode(Jid to, string node)
         {
-            CreateNode(to, null, node, true, null, null);
+            CreateNode(to, null, node, true, null);
         }
 
         public void CreateNode(Jid to, Jid from, string node)
         {
-            CreateNode(to, from, node, true, null, null);
+            CreateNode(to, from, node, true, null);
         }
 
         /// <summary>
@@ -125,25 +120,15 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="defaultConfig"></param>
         public void CreateNode(Jid to, Jid from, string node, bool defaultConfig)
         {
-            CreateNode(to, from, node, defaultConfig, null, null);
-        }
-
-        public void CreateNode(Jid to, string node, bool defaultConfig, IqCB cb)
-        {
-            CreateNode(to, null, node, defaultConfig, cb, null);
-        }
-
-        public void CreateNode(Jid to, string node, bool defaultConfig, IqCB cb, object cbArgs)
-        {
-            CreateNode(to, null, node, defaultConfig, cb, cbArgs);
+            CreateNode(to, from, node, defaultConfig, null);
         }
 
-        public void CreateNode(Jid to, Jid from, string node, bool defaultConfig, IqCB cb)
+        public void CreateNode(Jid to, string node, bool defaultConfig, IqHandler cb)
         {
-            CreateNode(to, from, node, defaultConfig, cb, null);
+            CreateNode(to, null, node, defaultConfig, cb);
         }
 
-        public void CreateNode(Jid to, Jid from, string node, bool defaultConfig, IqCB cb, object cbArgs)
+        public void CreateNode(Jid to, Jid from, string node, bool defaultConfig, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -158,7 +143,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -187,31 +172,20 @@ namespace agsXMPP.protocol.extensions.pubsub
         */
         public void CreateCollectionNode(Jid to, string node, bool defaultConfig)
         {
-            CreateCollectionNode(to, null, node, defaultConfig, null, null);
+            CreateCollectionNode(to, null, node, defaultConfig, null);
         }
 
-        public void CreateCollectionNode(Jid to, string node, bool defaultConfig, IqCB cb)
+        public void CreateCollectionNode(Jid to, string node, bool defaultConfig, IqHandler cb)
         {
-            CreateCollectionNode(to, null, node, defaultConfig, cb, null);
+            CreateCollectionNode(to, null, node, defaultConfig, cb);
         }
 
-        public void CreateCollectionNode(Jid to, string node, bool defaultConfig, IqCB cb, object cbArgs)
-        {
-            CreateCollectionNode(to, null, node, defaultConfig, cb, cbArgs);
-        }
-
-
         public void CreateCollectionNode(Jid to, Jid from, string node, bool defaultConfig)
         {
-            CreateCollectionNode(to, from, node, defaultConfig, null, null);
+            CreateCollectionNode(to, from, node, defaultConfig, null);
         }
 
-        public void CreateCollectionNode(Jid to, Jid from, string node, bool defaultConfig, IqCB cb)
-        {
-            CreateCollectionNode(to, from, node, defaultConfig, cb, null);
-        }
-
-        public void CreateCollectionNode(Jid to, Jid from, string node, bool defaultConfig, IqCB cb, object cbArgs)
+        public void CreateCollectionNode(Jid to, Jid from, string node, bool defaultConfig, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -226,7 +200,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -246,30 +220,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void DeleteNode(Jid to, string node)
         {
-            DeleteNode(to, null, node, null, null);
+            DeleteNode(to, null, node, null);
         }
 
-        public void DeleteNode(Jid to, string node, IqCB cb)
-        {
-            DeleteNode(to, null, node, cb, null);
-        }
-        
-        public void DeleteNode(Jid to, string node, IqCB cb, object cbArgs)
+        public void DeleteNode(Jid to, string node, IqHandler cb)
         {
-            DeleteNode(to, null, node, cb, cbArgs);
+            DeleteNode(to, null, node, cb);
         }
 
         public void DeleteNode(Jid to, Jid from, string node)
         {
-            DeleteNode(to, from, node, null, null);
-        }
-
-        public void DeleteNode(Jid to, Jid from, string node, IqCB cb)
-        {
-            DeleteNode(to, from, node, cb, null);
+            DeleteNode(to, from, node, null);
         }
 
-        public void DeleteNode(Jid to, Jid from, string node, IqCB cb, object cbArgs)
+        public void DeleteNode(Jid to, Jid from, string node, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.set, to);
 
@@ -281,7 +245,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -301,30 +265,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void PurgeNode(Jid to, string node)
         {
-            PurgeNode(to, null, node, null, null);
+            PurgeNode(to, null, node, null);
         }
 
-        public void PurgeNode(Jid to, string node, IqCB cb)
+        public void PurgeNode(Jid to, string node, IqHandler cb)
         {
-            PurgeNode(to, null, node, cb, null);
-        }
-
-        public void PurgeNode(Jid to, string node, IqCB cb, object cbArgs)
-        {
-            PurgeNode(to, null, node, cb, cbArgs);
+            PurgeNode(to, null, node, cb);
         }
 
         public void PurgeNode(Jid to, Jid from, string node)
         {
-            PurgeNode(to, from, node, null, null);
+            PurgeNode(to, from, node, null);
         }
 
-        public void PurgeNode(Jid to, Jid from, string node, IqCB cb)
-        {
-            PurgeNode(to, from, node, cb, null);
-        }
-
-        public void PurgeNode(Jid to, Jid from, string node, IqCB cb, object cbArgs)
+        public void PurgeNode(Jid to, Jid from, string node, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.set, to);
 
@@ -336,7 +290,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -370,7 +324,7 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="payload"></param>
         public void PublishItem(Jid to, string node, Item payload)
         {
-            PublishItem(to, null, node, payload, null, null);
+            PublishItem(to, null, node, payload, null);
         }
 
         /// <summary>
@@ -380,22 +334,9 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="node"></param>
         /// <param name="payload"></param>
         /// <param name="cb"></param>
-        public void PublishItem(Jid to, string node, Item payload, IqCB cb)
+        public void PublishItem(Jid to, string node, Item payload, IqHandler cb)
         {
-            PublishItem(to, null, node, payload, cb, null);
-        }
-
-        /// <summary>
-        /// Publish a payload to a Node
-        /// </summary>
-        /// <param name="to"></param>
-        /// <param name="node"></param>
-        /// <param name="payload"></param>
-        /// <param name="cb"></param>
-        /// <param name="cbArgs"></param>
-        public void PublishItem(Jid to, string node, Item payload, IqCB cb, object cbArgs)
-        {
-            PublishItem(to, null, node, payload, cb, cbArgs);
+            PublishItem(to, null, node, payload, cb);
         }
 
         /// <summary>
@@ -407,7 +348,7 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="payload"></param>
         public void PublishItem(Jid to, Jid from, string node, Item payload)
         {
-            PublishItem(to, from, node, payload, null, null);
+            PublishItem(to, from, node, payload, null);
         }
 
         /// <summary>
@@ -418,21 +359,7 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="node"></param>
         /// <param name="payload"></param>
         /// <param name="cb"></param>
-        public void PublishItem(Jid to, Jid from, string node, Item payload, IqCB cb)
-        {
-            PublishItem(to, from, node, payload, cb, null);
-        }
-
-        /// <summary>
-        /// Publish a payload to a Node
-        /// </summary>
-        /// <param name="to"></param>
-        /// <param name="from"></param>
-        /// <param name="node"></param>
-        /// <param name="payload"></param>
-        /// <param name="cb"></param>
-        /// <param name="cbArgs"></param>
-        public void PublishItem(Jid to, Jid from, string node, Item payload, IqCB cb, object cbArgs)
+        public void PublishItem(Jid to, Jid from, string node, Item payload, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -447,7 +374,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
 
         #endregion
@@ -468,31 +395,21 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void RetractItem(Jid to, string node, string id)
         {
-            RetractItem(to, null, node, id, null, null);
+            RetractItem(to, null, node, id, null);
         }
 
-        public void RetractItem(Jid to, string node, string id, IqCB cb)
+        public void RetractItem(Jid to, string node, string id, IqHandler cb)
         {
-            RetractItem(to, null, node, id, cb, null);
-        }
-
-        public void RetractItem(Jid to, string node, string id, IqCB cb, object cbArgs)
-        {
-            RetractItem(to, null, node, id, cb, cbArgs);
+            RetractItem(to, null, node, id, cb);
         }
 
 
         public void RetractItem(Jid to, Jid from, string node, string id)
         {
-            RetractItem(to, from, node, id, null, null);
-        }
-
-        public void RetractItem(Jid to, Jid from, string node, string id, IqCB cb)
-        {
-            RetractItem(to, from, node, id, cb, null);
+            RetractItem(to, from, node, id, null);
         }
 
-        public void RetractItem(Jid to, Jid from, string node, string id, IqCB cb, object cbArgs)
+        public void RetractItem(Jid to, Jid from, string node, string id, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -505,7 +422,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -531,30 +448,20 @@ namespace agsXMPP.protocol.extensions.pubsub
         /// <param name="node">node to which we want to subscribe</param>
         public void Subscribe(Jid to, Jid subscribe, string node)
         {
-            Subscribe(to, null, subscribe, node, null, null);
+            Subscribe(to, null, subscribe, node, null);
         }
 
-        public void Subscribe(Jid to, Jid subscribe, string node, IqCB cb)
+        public void Subscribe(Jid to, Jid subscribe, string node, IqHandler cb)
         {
-            Subscribe(to, null, subscribe, node, cb, null);
-        }
-
-        public void Subscribe(Jid to, Jid subscribe, string node, IqCB cb, object cbArgs)
-        {
-            Subscribe(to, null, subscribe, node, cb, cbArgs);
+            Subscribe(to, null, subscribe, node, cb);
         }
 
         public void Subscribe(Jid to, Jid from, Jid subscribe, string node)
         {
-            Subscribe(to, from, subscribe, node, null, null);
-        }
-
-        public void Subscribe(Jid to, Jid from, Jid subscribe, string node, IqCB cb)
-        {
-            Subscribe(to, from, subscribe, node, cb, null);
+            Subscribe(to, from, subscribe, node, null);
         }
 
-        public void Subscribe(Jid to, Jid from, Jid subscribe, string node, IqCB cb, object cbArgs)
+        public void Subscribe(Jid to, Jid from, Jid subscribe, string node, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -566,7 +473,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
 
         #endregion
@@ -601,27 +508,17 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void Unsubscribe(Jid to, Jid unsubscribe, string node, string subid)
         {
-            Unsubscribe(to, null, unsubscribe, node, subid, null, null);
-        }
-
-        public void Unsubscribe(Jid to, Jid unsubscribe, string node, IqCB cb)
-        {
-            Unsubscribe(to, null, unsubscribe, node, cb, null);
-        }
-
-        public void Unsubscribe(Jid to, Jid unsubscribe, string node, string subid, IqCB cb)
-        {
-            Unsubscribe(to, null, unsubscribe, node, subid, cb, null);
+            Unsubscribe(to, null, unsubscribe, node, subid, null);
         }
 
-        public void Unsubscribe(Jid to, Jid unsubscribe, string node, IqCB cb, object cbArgs)
+        public void Unsubscribe(Jid to, Jid unsubscribe, string node, IqHandler cb)
         {
-            Unsubscribe(to, null, unsubscribe, node, cb, cbArgs);
+            Unsubscribe(to, null, unsubscribe, node, cb);
         }
 
-        public void Unsubscribe(Jid to, Jid unsubscribe, string node, string subid, IqCB cb, object cbArgs)
+        public void Unsubscribe(Jid to, Jid unsubscribe, string node, string subid, IqHandler cb)
         {
-            Unsubscribe(to, null, unsubscribe, node, subid, cb, cbArgs);
+            Unsubscribe(to, null, unsubscribe, node, subid, cb);
         }
 
         public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node)
@@ -631,25 +528,15 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, string subid)
         {
-            Unsubscribe(to, from, unsubscribe, node, subid, null, null);
+            Unsubscribe(to, from, unsubscribe, node, subid, null);
         }
 
-        public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, IqCB cb)
+        public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, IqHandler cb)
         {
-            Unsubscribe(to, from, unsubscribe, node, cb, null);
+            Unsubscribe(to, from, unsubscribe, node, cb);
         }
 
-        public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, string subid, IqCB cb)
-        {
-            Unsubscribe(to, from, unsubscribe, node, subid, cb, null);
-        }
-
-        public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, IqCB cb, object cbArgs)
-        {
-            Unsubscribe(to, from, unsubscribe, node, null, cb, cbArgs);
-        }
-
-        public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, string subid, IqCB cb, object cbArgs)
+        public void Unsubscribe(Jid to, Jid from, Jid unsubscribe, string node, string subid, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.set, to);
 
@@ -665,7 +552,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
 
         #endregion
@@ -683,30 +570,20 @@ namespace agsXMPP.protocol.extensions.pubsub
         */
         public void RequestSubscriptions(Jid to)
         {
-            RequestSubscriptions(to, null, null, null);
-        }
-
-        public void RequestSubscriptions(Jid to, IqCB cb)
-        {
-            RequestSubscriptions(to, null, cb, null);
+            RequestSubscriptions(to, null, null);
         }
 
-        public void RequestSubscriptions(Jid to, IqCB cb, object cbArgs)
+        public void RequestSubscriptions(Jid to, IqHandler cb)
         {
-            RequestSubscriptions(to, null, cb, cbArgs);
+            RequestSubscriptions(to, null, cb);
         }
 
         public void RequestSubscriptions(Jid to, Jid from)
         {
-            RequestSubscriptions(to, from, null, null);
+            RequestSubscriptions(to, from, null);
         }
 
-        public void RequestSubscriptions(Jid to, Jid from, IqCB cb)
-        {
-            RequestSubscriptions(to, from, cb, null);
-        }
-
-        public void RequestSubscriptions(Jid to, Jid from, IqCB cb, object cbArgs)
+        public void RequestSubscriptions(Jid to, Jid from, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.get, to);
 
@@ -718,7 +595,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -735,30 +612,20 @@ namespace agsXMPP.protocol.extensions.pubsub
         */
         public void RequestAffiliations(Jid to)
         {
-            RequestAffiliations(to, null, null, null);
-        }
-
-        public void RequestAffiliations(Jid to, IqCB cb)
-        {
-            RequestAffiliations(to, null, cb, null);
+            RequestAffiliations(to, null, null);
         }
 
-        public void RequestAffiliations(Jid to, IqCB cb, object cbArgs)
+        public void RequestAffiliations(Jid to, IqHandler cb)
         {
-            RequestAffiliations(to, null, cb, cbArgs);
+            RequestAffiliations(to, null, cb);
         }
 
         public void RequestAffiliations(Jid to, Jid from)
         {
-            RequestAffiliations(to, from, null, null);
-        }
-
-        public void RequestAffiliations(Jid to, Jid from, IqCB cb)
-        {
-            RequestAffiliations(to, from, cb, null);
+            RequestAffiliations(to, from, null);
         }
 
-        public void RequestAffiliations(Jid to, Jid from, IqCB cb, object cbArgs)
+        public void RequestAffiliations(Jid to, Jid from, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.get, to);
 
@@ -770,7 +637,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -788,30 +655,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void RequestSubscriptionOptions(Jid to, Jid subscribe, string node)
         {
-            RequestSubscriptionOptions(to, null, subscribe, node, null, null);
+            RequestSubscriptionOptions(to, null, subscribe, node, null);
         }
 
-        public void RequestSubscriptionOptions(Jid to, Jid subscribe, string node, IqCB cb)
+        public void RequestSubscriptionOptions(Jid to, Jid subscribe, string node, IqHandler cb)
         {
-            RequestSubscriptionOptions(to, null, subscribe, node, cb, null);
-        }
-
-        public void RequestSubscriptionOptions(Jid to, Jid subscribe, string node, IqCB cb, object cbArgs)
-        {
-            RequestSubscriptionOptions(to, null, subscribe, node, cb, cbArgs);
+            RequestSubscriptionOptions(to, null, subscribe, node, cb);
         }
 
         public void RequestSubscriptionOptions(Jid to, Jid from, Jid subscribe, string node)
         {
-            RequestSubscriptionOptions(to, from, subscribe, node, null, null);
+            RequestSubscriptionOptions(to, from, subscribe, node, null);
         }
 
-        public void RequestSubscriptionOptions(Jid to, Jid from, Jid subscribe, string node, IqCB cb)
-        {
-            RequestSubscriptionOptions(to, from, subscribe, node, cb, null);
-        }
-
-        public void RequestSubscriptionOptions(Jid to, Jid from, Jid subscribe, string node, IqCB cb, object cbArgs)
+        public void RequestSubscriptionOptions(Jid to, Jid from, Jid subscribe, string node, IqHandler cb)
         {
             PubSubIq pubsubIq = new PubSubIq(IqType.get, to);
 
@@ -823,7 +680,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -841,30 +698,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void OwnerRequestSubscribers(Jid to, string node)
         {
-            OwnerRequestSubscribers(to, null, node, null, null);
+            OwnerRequestSubscribers(to, null, node, null);
         }
 
-        public void OwnerRequestSubscribers(Jid to, string node, IqCB cb)
+        public void OwnerRequestSubscribers(Jid to, string node, IqHandler cb)
         {
-            OwnerRequestSubscribers(to, null, node, cb, null);
-        }
-
-        public void OwnerRequestSubscribers(Jid to, string node, IqCB cb, object cbArgs)
-        {
-            OwnerRequestSubscribers(to, null, node, cb, cbArgs);
+            OwnerRequestSubscribers(to, null, node, cb);
         }
 
         public void OwnerRequestSubscribers(Jid to, Jid from, string node)
         {
-            OwnerRequestSubscribers(to, from, node, null, null);
-        }
-
-        public void OwnerRequestSubscribers(Jid to, Jid from, string node, IqCB cb)
-        {
-            OwnerRequestSubscribers(to, from, node, cb, null);
+            OwnerRequestSubscribers(to, from, node, null);
         }
 
-        public void OwnerRequestSubscribers(Jid to, Jid from, string node, IqCB cb, object cbArgs)
+        public void OwnerRequestSubscribers(Jid to, Jid from, string node, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.get, to);
 
@@ -876,7 +723,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -904,31 +751,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void OwnerModifySubscriptionState(Jid to, string node, Jid subscriber, SubscriptionState state)
         {
-            OwnerModifySubscriptionState(to, null, node, subscriber, state, null, null);
+            OwnerModifySubscriptionState(to, null, node, subscriber, state, null);
         }
 
-        public void OwnerModifySubscriptionState(Jid to, string node, Jid subscriber, SubscriptionState state, IqCB cb)
+        public void OwnerModifySubscriptionState(Jid to, string node, Jid subscriber, SubscriptionState state, IqHandler cb)
         {
-            OwnerModifySubscriptionState(to, null, node, subscriber, state, cb, null);
+            OwnerModifySubscriptionState(to, null, node, subscriber, state, cb);
         }
 
-        public void OwnerModifySubscriptionState(Jid to, string node, Jid subscriber, SubscriptionState state, IqCB cb, object cbArgs)
-        {
-            OwnerModifySubscriptionState(to, null, node, subscriber, state, cb, cbArgs);
-        }
-
-
         public void OwnerModifySubscriptionState(Jid to, Jid from, string node, Jid subscriber, SubscriptionState state)
         {
-            OwnerModifySubscriptionState(to, from, node, subscriber, state, null, null);
+            OwnerModifySubscriptionState(to, from, node, subscriber, state, null);
         }
 
-        public void OwnerModifySubscriptionState(Jid to, Jid from, string node, Jid subscriber, SubscriptionState state, IqCB cb)
-        {
-            OwnerModifySubscriptionState(to, from, node, subscriber, state, cb, null);
-        }
-
-        public void OwnerModifySubscriptionState(Jid to, Jid from, string node, Jid subscriber, SubscriptionState state, IqCB cb, object cbArgs)
+        public void OwnerModifySubscriptionState(Jid to, Jid from, string node, Jid subscriber, SubscriptionState state, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.set, to);
 
@@ -943,7 +779,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -964,31 +800,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void OwnerModifySubscriptionStates(Jid to, string node, owner.Subscriber[] subscribers)
         {
-            OwnerModifySubscriptionStates(to, null, node, subscribers, null, null);
+            OwnerModifySubscriptionStates(to, null, node, subscribers, null);
         }
 
-        public void OwnerModifySubscriptionStates(Jid to, string node, owner.Subscriber[] subscribers, IqCB cb)
+        public void OwnerModifySubscriptionStates(Jid to, string node, owner.Subscriber[] subscribers, IqHandler cb)
         {
-            OwnerModifySubscriptionStates(to, null, node, subscribers, cb, null);
+            OwnerModifySubscriptionStates(to, null, node, subscribers, cb);
         }
 
-        public void OwnerModifySubscriptionStates(Jid to, string node, owner.Subscriber[] subscribers, IqCB cb, object cbArgs)
-        {
-            OwnerModifySubscriptionStates(to, null, node, subscribers, cb, cbArgs);
-        }
-
-
         public void OwnerModifySubscriptionStates(Jid to, Jid from, string node, owner.Subscriber[] subscribers)
         {
-            OwnerModifySubscriptionStates(to, from, node, subscribers, null, null);
+            OwnerModifySubscriptionStates(to, from, node, subscribers, null);
         }
 
-        public void OwnerModifySubscriptionStates(Jid to, Jid from, string node, owner.Subscriber[] subscribers, IqCB cb)
-        {
-            OwnerModifySubscriptionStates(to, from, node, subscribers, cb, null);
-        }
-
-        public void OwnerModifySubscriptionStates(Jid to, Jid from, string node, owner.Subscriber[] subscribers, IqCB cb, object cbArgs)
+        public void OwnerModifySubscriptionStates(Jid to, Jid from, string node, owner.Subscriber[] subscribers, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.set, to);
 
@@ -1003,7 +828,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -1023,31 +848,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void OwnerRequestAffiliations(Jid to, string node)
         {
-            OwnerRequestAffiliations(to, null, node, null, null);
-        }
-
-        public void OwnerRequestAffiliations(Jid to, string node, IqCB cb)
-        {
-            OwnerRequestAffiliations(to, null, node, cb, null);
+            OwnerRequestAffiliations(to, null, node, null);
         }
 
-        public void OwnerRequestAffiliations(Jid to, string node, IqCB cb, object cbArgs)
+        public void OwnerRequestAffiliations(Jid to, string node, IqHandler cb)
         {
-            OwnerRequestAffiliations(to, null, node, cb, cbArgs);
+            OwnerRequestAffiliations(to, null, node, cb);
         }
 
-
         public void OwnerRequestAffiliations(Jid to, Jid from, string node)
         {
-            OwnerRequestAffiliations(to, from, node, null, null);
-        }
-
-        public void OwnerRequestAffiliations(Jid to, Jid from, string node, IqCB cb)
-        {
-            OwnerRequestAffiliations(to, from, node, cb, null);
+            OwnerRequestAffiliations(to, from, node, null);
         }
 
-        public void OwnerRequestAffiliations(Jid to, Jid from, string node, IqCB cb, object cbArgs)
+        public void OwnerRequestAffiliations(Jid to, Jid from, string node, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.get, to);
 
@@ -1059,7 +873,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -1082,31 +896,20 @@ namespace agsXMPP.protocol.extensions.pubsub
         
         public void OwnerModifyAffiliation(Jid to, string node, Jid affiliate, AffiliationType affiliation)
         {
-            OwnerModifyAffiliation(to, null, node, affiliate, affiliation, null, null);
+            OwnerModifyAffiliation(to, null, node, affiliate, affiliation, null);
         }
         
-        public void OwnerModifyAffiliation(Jid to, string node, Jid affiliate, AffiliationType affiliation, IqCB cb)
+        public void OwnerModifyAffiliation(Jid to, string node, Jid affiliate, AffiliationType affiliation, IqHandler cb)
         {
-            OwnerModifyAffiliation(to, null, node, affiliate, affiliation, cb, null);
+            OwnerModifyAffiliation(to, null, node, affiliate, affiliation, cb);
         }
 
-        public void OwnerModifyAffiliation(Jid to, string node, Jid affiliate, AffiliationType affiliation, IqCB cb, object cbArgs)
-        {
-            OwnerModifyAffiliation(to, null, node, affiliate, affiliation, cb, cbArgs);
-        }
-
-
         public void OwnerModifyAffiliation(Jid to, Jid from, string node, Jid affiliate, AffiliationType affiliation)
         {
-            OwnerModifyAffiliation(to, from, node, affiliate, affiliation, null, null);
+            OwnerModifyAffiliation(to, from, node, affiliate, affiliation, null);
         }
-        
-        public void OwnerModifyAffiliation(Jid to, Jid from, string node, Jid affiliate, AffiliationType affiliation, IqCB cb)
-        {
-            OwnerModifyAffiliation(to, from, node, affiliate, affiliation, cb, null);
-        }
-        
-        public void OwnerModifyAffiliation(Jid to, Jid from, string node, Jid affiliate, AffiliationType affiliation, IqCB cb, object cbArgs)
+
+        public void OwnerModifyAffiliation(Jid to, Jid from, string node, Jid affiliate, AffiliationType affiliation, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.set, to);
 
@@ -1121,7 +924,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
 
@@ -1145,31 +948,20 @@ namespace agsXMPP.protocol.extensions.pubsub
 
         public void OwnerModifyAffiliations(Jid to, string node, owner.Affiliate[] affiliates)
         {
-            OwnerModifyAffiliations(to, null, node, affiliates, null, null);
-        }
-
-        public void OwnerModifyAffiliations(Jid to, string node, owner.Affiliate[] affiliates, IqCB cb)
-        {
-            OwnerModifyAffiliations(to, null, node, affiliates, cb, null);
+            OwnerModifyAffiliations(to, null, node, affiliates, null);
         }
 
-        public void OwnerModifyAffiliations(Jid to, string node, owner.Affiliate[] affiliates, IqCB cb, object cbArgs)
+        public void OwnerModifyAffiliations(Jid to, string node, owner.Affiliate[] affiliates, IqHandler cb)
         {
-            OwnerModifyAffiliations(to, null, node, affiliates, cb, cbArgs);
+            OwnerModifyAffiliations(to, null, node, affiliates, cb);
         }
 
-
         public void OwnerModifyAffiliations(Jid to, Jid from, string node, owner.Affiliate[] affiliates)
         {
-            OwnerModifyAffiliations(to, from, node, affiliates, null, null);
-        }
-
-        public void OwnerModifyAffiliations(Jid to, Jid from, string node, owner.Affiliate[] affiliates, IqCB cb)
-        {
-            OwnerModifyAffiliations(to, from, node, affiliates, cb, null);
+            OwnerModifyAffiliations(to, from, node, affiliates, null);
         }
 
-        public void OwnerModifyAffiliations(Jid to, Jid from, string node, owner.Affiliate[] affiliates, IqCB cb, object cbArgs)
+        public void OwnerModifyAffiliations(Jid to, Jid from, string node, owner.Affiliate[] affiliates, IqHandler cb)
         {
             owner.PubSubIq pubsubIq = new owner.PubSubIq(IqType.set, to);
 
@@ -1184,7 +976,7 @@ namespace agsXMPP.protocol.extensions.pubsub
             if (cb == null)
                 m_connection.Send(pubsubIq);
             else
-                m_connection.IqGrabber.SendIq(pubsubIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(pubsubIq, cb);
         }
         #endregion
     }
diff --git a/lib/agsxmpp/agsxmpp/protocol/iq/disco/DiscoManager.cs b/lib/agsxmpp/agsxmpp/protocol/iq/disco/DiscoManager.cs
index 5ba88c7..afd04f8 100644
--- a/lib/agsxmpp/agsxmpp/protocol/iq/disco/DiscoManager.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/iq/disco/DiscoManager.cs
@@ -54,11 +54,13 @@ namespace agsXMPP.protocol.iq.disco
         }
         #endregion
 
-        private void OnIq(object sender, IQ iq)
+        private void OnIq(object sender, IQEventArgs e)
         {
             // DiscoInfo
-            if (m_AutoAnswerDiscoInfoRequests && iq.Query is DiscoInfo && iq.Type == IqType.get)
-                ProcessDiscoInfo(iq);
+            if (m_AutoAnswerDiscoInfoRequests && e.IQ.Query is DiscoInfo && e.IQ.Type == IqType.get) {
+                e.Handled = true;
+                ProcessDiscoInfo(e.IQ);
+            }
         }
 
         private void ProcessDiscoInfo(IQ iq)
@@ -76,59 +78,40 @@ namespace agsXMPP.protocol.iq.disco
         #region << Discover Info >>
         public void DiscoverInformation(Jid to)
         {
-            DiscoverInformation(to, null, null, null, null);
+            DiscoverInformation(to, null, null, null);
         }
 
         public void DiscoverInformation(Jid to, Jid from)
         {
-            DiscoverInformation(to, from, null, null, null);
+            DiscoverInformation(to, from, null, null);
         }
 
-        public void DiscoverInformation(Jid to, IqCB cb)
+        public void DiscoverInformation(Jid to, IqHandler cb)
         {
-            DiscoverInformation(to, null, null, cb, null);
+            DiscoverInformation(to, null, null, cb);
         }
 
-        public void DiscoverInformation(Jid to, Jid from, IqCB cb)
+        public void DiscoverInformation(Jid to, Jid from, IqHandler cb)
         {
-            DiscoverInformation(to, from, null, cb, null);
-        }
-
-        public void DiscoverInformation(Jid to, IqCB cb, object cbArgs)
-        {
-            DiscoverInformation(to, null, null, cb, cbArgs);
-        }
-
-        public void DiscoverInformation(Jid to, Jid from, IqCB cb, object cbArgs)
-        {
-            DiscoverInformation(to, from, null, cb, cbArgs);
+            DiscoverInformation(to, from, null, cb);
         }
 
         public void DiscoverInformation(Jid to, string node)
         {
-            DiscoverInformation(to, null, node, null, null);
+            DiscoverInformation(to, null, node, null);
         }
 
         public void DiscoverInformation(Jid to, Jid from, string node)
         {
-            DiscoverInformation(to, from, node, null, null);
+            DiscoverInformation(to, from, node, null);
         }
 
-        public void DiscoverInformation(Jid to, string node, IqCB cb)
+        public void DiscoverInformation(Jid to, string node, IqHandler cb)
         {
-            DiscoverInformation(to, null, node, cb, null);
+            DiscoverInformation(to, null, node, cb);
         }
 
-        public void DiscoverInformation(Jid to, Jid from, string node, IqCB cb)
-        {
-            DiscoverInformation(to, from, node, cb, null);
-        }
-
-        public void DiscoverInformation(Jid to, string node, IqCB cb, object cbArgs)
-        {
-            DiscoverInformation(to, null, node, cb, cbArgs);
-        }
-        public void DiscoverInformation(Jid to, Jid from, string node, IqCB cb, object cbArgs)
+        public void DiscoverInformation(Jid to, Jid from, string node, IqHandler cb)
         {
             /*
             
@@ -166,7 +149,7 @@ namespace agsXMPP.protocol.iq.disco
             if (node != null && node.Length > 0)
                 discoIq.Query.Node = node;
             
-            xmppConnection.IqGrabber.SendIq(discoIq, cb, cbArgs);
+            xmppConnection.IqGrabber.SendIq(discoIq, cb);
         }
         #endregion
 
@@ -178,55 +161,35 @@ namespace agsXMPP.protocol.iq.disco
 
         public void DiscoverItems(Jid to, Jid from)
         {
-            DiscoverItems(to, from, null, null, null);
+            DiscoverItems(to, from, null, null);
         }
 
-        public void DiscoverItems(Jid to, IqCB cb)
+        public void DiscoverItems(Jid to, IqHandler cb)
         {
-            DiscoverItems(to, null, null, cb, null);
+            DiscoverItems(to, null, null, cb);
         }
 
-        public void DiscoverItems(Jid to, Jid from, IqCB cb)
+        public void DiscoverItems(Jid to, Jid from, IqHandler cb)
         {
-            DiscoverItems(to, from, null, cb, null);
-        }
-
-        public void DiscoverItems(Jid to, IqCB cb, object cbArgs)
-        {
-            DiscoverItems(to, null, null, cb, cbArgs);
-        }
-
-        public void DiscoverItems(Jid to, Jid from, IqCB cb, object cbArgs)
-        {
-            DiscoverItems(to, from, null, cb, cbArgs);
+            DiscoverItems(to, from, null, cb);
         }
 
         public void DiscoverItems(Jid to, string node)
         {
-            DiscoverItems(to, null, node, null, null);
+            DiscoverItems(to, null, node, null);
         }
 
         public void DiscoverItems(Jid to, Jid from, string node)
         {
-            DiscoverItems(to, from, node, null, null);
-        }
-
-        public void DiscoverItems(Jid to, string node, IqCB cb)
-        {
-            DiscoverItems(to, null, node, cb, null);
-        }
-
-        public void DiscoverItems(Jid to, Jid from, string node, IqCB cb)
-        {
-            DiscoverItems(to, from, node, cb, null);
+            DiscoverItems(to, from, node, null);
         }
 
-        public void DiscoverItems(Jid to, string node, IqCB cb, object cbArgs)
+        public void DiscoverItems(Jid to, string node, IqHandler cb)
         {
-            DiscoverItems(to, null, node, cb, cbArgs);
+            DiscoverItems(to, null, node, cb);
         }
 
-        public void DiscoverItems(Jid to, Jid from, string node, IqCB cb, object cbArgs)
+        public void DiscoverItems(Jid to, Jid from, string node, IqHandler cb)
         {
             DiscoItemsIq discoIq = new DiscoItemsIq(IqType.get);
             discoIq.To = to;
@@ -237,7 +200,7 @@ namespace agsXMPP.protocol.iq.disco
             if (node != null && node.Length > 0)
                 discoIq.Query.Node = node;
 
-            xmppConnection.IqGrabber.SendIq(discoIq, cb, cbArgs);
+            xmppConnection.IqGrabber.SendIq(discoIq, cb);
         }
         #endregion
                         
diff --git a/lib/agsxmpp/agsxmpp/protocol/iq/privacy/PrivacyManager.cs b/lib/agsxmpp/agsxmpp/protocol/iq/privacy/PrivacyManager.cs
index d327fa2..2519ebc 100644
--- a/lib/agsxmpp/agsxmpp/protocol/iq/privacy/PrivacyManager.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/iq/privacy/PrivacyManager.cs
@@ -45,7 +45,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// </summary>
         public void GetLists()
         {
-            GetLists(null, null);
+            GetLists(null);
         }
 
         /// <summary>
@@ -53,7 +53,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// </summary>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void GetLists(IqCB cb, object cbArg)
+        public void GetLists(IqHandler cb)
         {
             /*
                 Example: Client requests names of privacy lists from server:
@@ -80,7 +80,7 @@ namespace agsXMPP.protocol.iq.privacy
 
             pIq.Type = agsXMPP.protocol.client.IqType.get;
 
-            SendStanza(pIq, cb, cbArg);
+            SendStanza(pIq, cb);
         }
 
         /// <summary>
@@ -89,7 +89,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name">name of the privacy list to retrieve</param>
         public void GetList(string name)
         {
-            GetList(name, null, null);
+            GetList(name, null);
         }
 
         /// <summary>
@@ -98,7 +98,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name">name of the privacy list to retrieve</param>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void GetList(string name, IqCB cb, object cbArg)
+        public void GetList(string name, IqHandler cb)
         {
             /*
                 Example: Client requests a privacy list from server:
@@ -130,7 +130,7 @@ namespace agsXMPP.protocol.iq.privacy
             pIq.Type = agsXMPP.protocol.client.IqType.get;
             pIq.Query.AddList(new List(name));
 
-            SendStanza(pIq, cb, cbArg);            
+            SendStanza(pIq, cb);            
         }
 
         /// <summary>
@@ -139,7 +139,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name">name of the privacy list to remove</param>
         public void RemoveList(string name)
         {
-            RemoveList(name, null, null);
+            RemoveList(name, null);
         }
 
         /// <summary>
@@ -148,14 +148,14 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name">name of the privacy list to remove</param>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void RemoveList(string name, IqCB cb, object cbArg)
+        public void RemoveList(string name, IqHandler cb)
         {
             PrivacyIq pIq = new PrivacyIq();
 
             pIq.Type = agsXMPP.protocol.client.IqType.set;
             pIq.Query.AddList(new List(name));
 
-            SendStanza(pIq, cb, cbArg);            
+            SendStanza(pIq, cb);            
         }
 
         /// <summary>
@@ -163,7 +163,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// </summary>
         public void DeclineActiveList()
         {
-            DeclineActiveList(null, null);
+            DeclineActiveList(null);
         }
 
         /// <summary>
@@ -171,7 +171,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// </summary>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void DeclineActiveList(IqCB cb, object cbArg)
+        public void DeclineActiveList(IqHandler cb)
         {
             /*
                 In order to decline the use of any active list, the connected resource MUST send an empty <active/> element 
@@ -195,7 +195,7 @@ namespace agsXMPP.protocol.iq.privacy
             pIq.Type = agsXMPP.protocol.client.IqType.set;
             pIq.Query.Active = new Active();
 
-            SendStanza(pIq, cb, cbArg);
+            SendStanza(pIq, cb);
         }
 
         /// <summary>
@@ -204,7 +204,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name"></param>
         public void ChangeActiveList(string name)
         {
-            ChangeActiveList(name, null, null);
+            ChangeActiveList(name, null);
         }
 
         /// <summary>
@@ -213,7 +213,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name"></param>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void ChangeActiveList(string name, IqCB cb, object cbArg)
+        public void ChangeActiveList(string name, IqHandler cb)
         {
             /*
                 Example: Client requests change of active list:
@@ -251,7 +251,7 @@ namespace agsXMPP.protocol.iq.privacy
             pIq.Type = agsXMPP.protocol.client.IqType.set;
             pIq.Query.Active = new Active(name);
 
-            SendStanza(pIq, cb, cbArg);
+            SendStanza(pIq, cb);
         }
 
         /// <summary>
@@ -260,7 +260,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name">name of the new default list</param>
         public void ChangeDefaultList(string name)
         {
-            ChangeDefaultList(name, null, null);
+            ChangeDefaultList(name, null);
         }
 
         /// <summary>
@@ -269,14 +269,14 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="name">name of the new default list</param>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void ChangeDefaultList(string name, IqCB cb, object cbArg)
+        public void ChangeDefaultList(string name, IqHandler cb)
         {
             PrivacyIq pIq = new PrivacyIq();
 
             pIq.Type = agsXMPP.protocol.client.IqType.set;
             pIq.Query.Default = new Default(name);
 
-            SendStanza(pIq, cb, cbArg);
+            SendStanza(pIq, cb);
         }
 
         /// <summary>
@@ -284,7 +284,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// </summary>
         public void DeclineDefaultList()
         {
-            DeclineDefaultList(null, null);
+            DeclineDefaultList(null);
         }
 
         /// <summary>
@@ -292,14 +292,14 @@ namespace agsXMPP.protocol.iq.privacy
         /// </summary>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void DeclineDefaultList(IqCB cb, object cbArg)
+        public void DeclineDefaultList(IqHandler cb)
         {
             PrivacyIq pIq = new PrivacyIq();
 
             pIq.Type = agsXMPP.protocol.client.IqType.set;
             pIq.Query.Default = new Default();
 
-            SendStanza(pIq, cb, cbArg);
+            SendStanza(pIq, cb);
         }
 
       
@@ -315,7 +315,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="rules">rules of this list</param>
         public void UpdateList(string name, Item[] rules)
         {
-            UpdateList(name, rules, null, null);
+            UpdateList(name, rules, null);
         }
 
         /// <summary>
@@ -329,7 +329,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="rules">rules of this list</param>
         /// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void UpdateList(string name, Item[] rules, IqCB cb, object cbArg)
+        public void UpdateList(string name, Item[] rules, IqHandler cb)
         {
             PrivacyIq pIq = new PrivacyIq();
             pIq.Type = agsXMPP.protocol.client.IqType.set;
@@ -340,7 +340,7 @@ namespace agsXMPP.protocol.iq.privacy
             // add the list to the query
             pIq.Query.AddList(list);
 
-            SendStanza(pIq, cb, cbArg);
+            SendStanza(pIq, cb);
         }
 
         /// <summary>
@@ -350,7 +350,7 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="rules"></param>
         public void AddList(string name, Item[] rules)
         {
-            AddList(name, rules, null, null);
+            AddList(name, rules, null);
         }
 
         /// <summary>
@@ -360,9 +360,9 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="rules"></param>
         ///// <param name="cb">Callback for the server result</param>
         /// <param name="cbArg">Callback arguments for the result when needed</param>
-        public void AddList(string name, Item[] rules, IqCB cb, object cbArg)
+        public void AddList(string name, Item[] rules, IqHandler cb)
         {
-            UpdateList(name, rules, cb, cbArg);
+            UpdateList(name, rules, cb);
         }
 
         /// <summary>
@@ -371,12 +371,12 @@ namespace agsXMPP.protocol.iq.privacy
         /// <param name="pIq"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        private void SendStanza(PrivacyIq pIq, IqCB cb, object cbArg)
+        private void SendStanza(PrivacyIq pIq, IqHandler cb)
         {
             if (cb == null)
                 m_connection.Send(pIq);
             else
-                m_connection.IqGrabber.SendIq(pIq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(pIq, cb);
         }
         
 
diff --git a/lib/agsxmpp/agsxmpp/protocol/sasl/Failure.cs b/lib/agsxmpp/agsxmpp/protocol/sasl/Failure.cs
index e877f8c..f9c6c48 100644
--- a/lib/agsxmpp/agsxmpp/protocol/sasl/Failure.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/sasl/Failure.cs
@@ -52,6 +52,8 @@ namespace agsXMPP.protocol.sasl
                     return FailureCondition.aborted;
                 else if (HasTag("incorrect-encoding"))
                     return FailureCondition.incorrect_encoding;
+                else if (HasTag("encryption-required"))
+                    return FailureCondition.encryption_required;
                 else if (HasTag("invalid-authzid"))
                     return FailureCondition.invalid_authzid;
                 else if (HasTag("invalid-mechanism"))
@@ -71,6 +73,8 @@ namespace agsXMPP.protocol.sasl
                     SetTag("aborted");
                 else if (value == FailureCondition.incorrect_encoding)
                     SetTag("incorrect-encoding");
+                else if (value == FailureCondition.encryption_required)
+                    SetTag("encryption-required");
                 else if (value == FailureCondition.invalid_authzid)
                     SetTag("invalid-authzid");
                 else if (value == FailureCondition.invalid_mechanism)
diff --git a/lib/agsxmpp/agsxmpp/protocol/sasl/FailureCondition.cs b/lib/agsxmpp/agsxmpp/protocol/sasl/FailureCondition.cs
index fd85ede..a406bfa 100644
--- a/lib/agsxmpp/agsxmpp/protocol/sasl/FailureCondition.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/sasl/FailureCondition.cs
@@ -9,6 +9,11 @@ namespace agsXMPP.protocol.sasl
         /// The receiving entity acknowledges an <abort/> element sent by the initiating entity; sent in reply to the <abort/> element.
         /// </summary>
         aborted,
+
+        /// <summary>
+        /// The mechanism chosen by the initiating entity may be used only if the stream is already encrypted; provided in response to the <auth/> element.
+        /// </summary>
+        encryption_required,
         
         /// <summary>
         /// The data provided by the initiating entity could not be processed because the [BASE64] (Josefsson, S., �The Base16, Base32, and Base64 Data Encodings,� July 2003.) encoding is incorrect (e.g., because the encoding does not adhere to the definition in Section 3 of [BASE64] (Josefsson, S., �The Base16, Base32, and Base64 Data Encodings,� July 2003.)); sent in reply to a <response/> element or an <auth/> element with initial response data.
diff --git a/lib/agsxmpp/agsxmpp/protocol/x/muc/MucManager.cs b/lib/agsxmpp/agsxmpp/protocol/x/muc/MucManager.cs
index e25db72..7e6f016 100644
--- a/lib/agsxmpp/agsxmpp/protocol/x/muc/MucManager.cs
+++ b/lib/agsxmpp/agsxmpp/protocol/x/muc/MucManager.cs
@@ -334,17 +334,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         public void AcceptDefaultConfiguration(Jid room)
         {
-            AcceptDefaultConfiguration(room, null, null);
-        }
-
-        /// <summary>
-        /// create an "instant room". This means you accept the default configuration and dont want to configure the room.
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="cb"></param>
-        public void AcceptDefaultConfiguration(Jid room, IqCB cb)
-        {
-            AcceptDefaultConfiguration(room, cb, null);
+            AcceptDefaultConfiguration(room, null);
         }
 
         /// <summary>
@@ -353,7 +343,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         /// <param name="cb"></param>
         /// <param name="cbArgs"></param>
-        public void AcceptDefaultConfiguration(Jid room, IqCB cb, object cbArgs)
+        public void AcceptDefaultConfiguration(Jid room, IqHandler cb)
         {
             OwnerIq oIq = new agsXMPP.protocol.x.muc.iq.owner.OwnerIq(IqType.set, room);
             oIq.Query.AddChild(new Data(XDataFormType.submit));
@@ -361,7 +351,7 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(oIq);
             else
-                m_connection.IqGrabber.SendIq(oIq, cb, cbArgs);
+                m_connection.IqGrabber.SendIq(oIq, cb);
         }
         
         /*
@@ -383,19 +373,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         public void RequestConfigurationForm(Jid room)
         {
-            RequestConfigurationForm(room, null, null);
-        }
-
-        /// <summary>
-        /// Request the configuration form of a chatroom.
-        /// You can request the from when creating a new room. or at any time later if you want to change the room configuration.
-        /// Only room owners can request this from. Otherwise the service must return a 403 forbidden error
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="cb"></param>
-        public void RequestConfigurationForm(Jid room, IqCB cb)
-        {
-            RequestConfigurationForm(room, cb, null);
+            RequestConfigurationForm(room, null);
         }
 
         /// <summary>
@@ -406,11 +384,11 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         /// <param name="cb"></param>
         /// <param name="cbArgs"></param>
-        public void RequestConfigurationForm(Jid room, IqCB cb, object cbArgs)
+        public void RequestConfigurationForm(Jid room, IqHandler cb)
         {
             OwnerIq oIq = new agsXMPP.protocol.x.muc.iq.owner.OwnerIq(IqType.get, room);          
 
-            m_connection.IqGrabber.SendIq(oIq, cb, cbArgs);
+            m_connection.IqGrabber.SendIq(oIq, cb);
         }
 
         /*
@@ -436,7 +414,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="nickname">Nickname od the occupant to kick</param>
         public void KickOccupant(Jid room, string nickname)
         {
-            KickOccupant(room, nickname, null, null, null);
+            KickOccupant(room, nickname, null, null);
         }
 
         /// <summary>
@@ -450,23 +428,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason">A optional reason why you kick this occupant</param>
         public void KickOccupant(Jid room, string nickname, string reason)
         {
-            KickOccupant(room, nickname, reason, null, null);
-        }
-
-
-        /// <summary>
-        /// Kick a occupant
-        /// A moderator has permissions kick a visitor or participant from a room.
-        /// The kick is normally performed based on the occupant's room nickname (though it MAY be based on the full JID)
-        /// and is completed by setting the role of a participant or visitor to a value of "none".
-        /// </summary>
-        /// <param name="room">Jid of the room to which this iq is sent</param>
-        /// <param name="nickname">Nickname od the occupant to kick</param>
-        /// <param name="reason">A optional reason why you kick this occupant</param>
-        /// <param name="cb">Callback which is invoked with the result to this iq</param>        
-        public void KickOccupant(Jid room, string nickname, string reason, IqCB cb)
-        {
-            KickOccupant(room, nickname, reason, cb, null);
+            KickOccupant(room, nickname, reason, null);
         }
 
         /// <summary>
@@ -480,9 +442,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason">A optional reason why you kick this occupant</param>
         /// <param name="cb">Callback which is invoked with the result to this iq</param>
         /// <param name="cbArg">Callback which is invoked with the result to this iq</param>
-        public void KickOccupant(Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        public void KickOccupant(Jid room, string nickname, string reason, IqHandler cb)
         {
-            ChangeRole(Role.none, room, nickname, reason, cb, cbArg);            
+            ChangeRole(Role.none, room, nickname, reason, cb);            
         }
 
         /*
@@ -508,7 +470,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="nickname"></param>
         public void GrantVoice(Jid room, string nickname)
         {
-            GrantVoice(room, nickname, null, null, null);
+            GrantVoice(room, nickname, null, null);
         }
 
         /// <summary>
@@ -519,19 +481,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void GrantVoice(Jid room, string nickname, string reason)
         {
-            GrantVoice(room, nickname, reason, null, null);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="room">Jid of the room to which this iq is sent</param>
-        /// <param name="nickname"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>        
-        public void GrantVoice(Jid room, string nickname, string reason, IqCB cb)
-        {
-            GrantVoice(room, nickname, reason, cb, null);
+            GrantVoice(room, nickname, reason, null);
         }
 
         /// <summary>
@@ -542,9 +492,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void GrantVoice(Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        public void GrantVoice(Jid room, string nickname, string reason, IqHandler cb)
         {
-            ChangeRole(Role.participant, room, nickname, reason, cb, cbArg);            
+            ChangeRole(Role.participant, room, nickname, reason, cb);            
         }
 
         /*
@@ -569,7 +519,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="nickname"></param>
         public void RevokeVoice(Jid room, string nickname)
         {
-            RevokeVoice(room, nickname, null, null, null);
+            RevokeVoice(room, nickname, null, null);
         }
 
         /// <summary>
@@ -581,20 +531,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void RevokeVoice(Jid room, string nickname, string reason)
         {
-            RevokeVoice(room, nickname, reason, null, null);
-        }
-
-        /// <summary>
-        /// In a moderated room, a moderator may want to revoke a participant's privileges to speak.
-        /// The moderator can revoke voice from a participant by changing the participant's role to "visitor":
-        /// </summary>
-        /// <param name="room">Jid of the room to which this iq is sent</param>
-        /// <param name="nickname"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>
-        public void RevokeVoice(Jid room, string nickname, string reason, IqCB cb)
-        {
-            RevokeVoice(room, nickname, reason, cb, null);
+            RevokeVoice(room, nickname, reason, null);
         }
 
         /// <summary>
@@ -606,9 +543,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RevokeVoice(Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        public void RevokeVoice(Jid room, string nickname, string reason, IqHandler cb)
         {
-            ChangeRole(Role.visitor, room, nickname, reason, cb, cbArg);
+            ChangeRole(Role.visitor, room, nickname, reason, cb);
         }        
 
         /*
@@ -641,27 +578,8 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room">Jid of the room to which this iq is sent</param>
         public void RequestVoiceList(Jid room)
         {
-            RequestVoiceList(room, null, null);
+            RequestVoiceList(room, null);
         }        
-        
-        /// <summary>
-        /// A moderator in a moderated room may want to modify the voice list. 
-        /// To do so, the moderator first requests the voice list by querying the room for all occupants 
-        /// with a role of 'participant'.
-        /// The service MUST then return the voice list to the moderator; each item MUST include 
-        /// the 'nick' and 'role' attributes and SHOULD include the 'affiliation' and 'jid' attributes.
-        /// The moderator MAY then modify the voice list. In order to do so, the moderator MUST send the 
-        /// changed items (i.e., only the "delta") back to the service; each item MUST include 
-        /// the 'nick' attribute and 'role' attribute (normally set to a value of "participant" or "visitor") 
-        /// but SHOULD NOT include the 'jid' attribute and MUST NOT include the 'affiliation' attribute 
-        /// (which is used to manage affiliations such as owner rather than the participant role),        
-        /// </summary>
-        /// <param name="room">Jid of the room to which this iq is sent</param>
-        /// <param name="cb"></param>
-        public void RequestVoiceList(Jid room, IqCB cb)
-        {
-            RequestVoiceList(room, cb, null);
-        }
 
         /// <summary>
         /// A moderator in a moderated room may want to modify the voice list. 
@@ -678,9 +596,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room">Jid of the room to which this iq is sent</param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RequestVoiceList(Jid room, IqCB cb, object cbArg)
+        public void RequestVoiceList(Jid room, IqHandler cb)
         {
-            RequestList(Role.participant, room, cb, cbArg);            
+            RequestList(Role.participant, room, cb);            
         }
 
         /*
@@ -706,7 +624,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="user"></param>
         public void BanUser(Jid room, Jid user)
         {
-            BanUser(room, user, null, null, null);
+            BanUser(room, user, null, null);
         }
 
         /// <summary>
@@ -717,20 +635,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void BanUser(Jid room, Jid user, string reason)
         {
-            BanUser(room, user, reason, null, null);
-        }
-
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="user"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>
-        public void BanUser(Jid room, Jid user, string reason, IqCB cb)
-        {
-            BanUser(room, user, reason, cb, null);
+            BanUser(room, user, reason, null);
         }
 
         /// <summary>
@@ -741,9 +646,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void BanUser(Jid room, Jid user, string reason, IqCB cb, object cbArg)
+        public void BanUser(Jid room, Jid user, string reason, IqHandler cb)
         {
-            ChangeAffiliation(Affiliation.outcast, room, user, null, reason, cb, cbArg);            
+            ChangeAffiliation(Affiliation.outcast, room, user, null, reason, cb);            
         }
 
         /*
@@ -774,7 +679,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         public void RequestBanList(Jid room)
         {
-            RequestBanList(room, null, null);
+            RequestBanList(room, null);
         }        
 
         /// <summary>
@@ -786,28 +691,12 @@ namespace agsXMPP.protocol.x.muc
         /// users with an affiliation of 'outcast'.
         /// </remarks>
         /// </summary>
-        /// <param name="room"></param>        
-        /// <param name="cb"></param>
-        public void RequestBanList(Jid room, IqCB cb)
-        {
-            RequestBanList(room, cb, null);
-        }
-
-        /// <summary>
-        /// A room admin may want to modify the ban list. 
-        /// <remarks>
-        /// Note: The ban list is always based on a user's bare JID, 
-        /// although a nick (perhaps the last room nickname associated with that JID) MAY be included for convenience. 
-        /// To modify the list of banned JIDs, the admin first requests the ban list by querying the room for all 
-        /// users with an affiliation of 'outcast'.
-        /// </remarks>
-        /// </summary>
         /// <param name="room"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RequestBanList(Jid room, IqCB cb, object cbArg)
+        public void RequestBanList(Jid room, IqHandler cb)
         {
-            RequestList(Affiliation.outcast, room, cb, cbArg);
+            RequestList(Affiliation.outcast, room, cb);
         }
 
 
@@ -835,19 +724,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="user"></param>
         public void GrantAdminPrivileges(Jid room, Jid user)
         {
-            GrantAdminPrivileges(room, user, null, null);
-        }
-
-        /// <summary>
-        /// Grant administrative privileges to a member or unaffiliated user.
-        /// This could be done by an room owner
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="user"></param>
-        /// <param name="cb"></param>
-        public void GrantAdminPrivileges(Jid room, Jid user, IqCB cb)
-        {
-            GrantAdminPrivileges(room, user, cb, null);
+            GrantAdminPrivileges(room, user, null);
         }
 
         /// <summary>
@@ -858,9 +735,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="user"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void GrantAdminPrivileges(Jid room, Jid user, IqCB cb, object cbArg)
+        public void GrantAdminPrivileges(Jid room, Jid user, IqHandler cb)
         {
-            ChangeAffiliation(Affiliation.admin, room, user, cb, cbArg);
+            ChangeAffiliation(Affiliation.admin, room, user, cb);
         }
 
 
@@ -895,7 +772,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="user"></param>
         public void GrantMembership(Jid room, Jid user)
         {
-            GrantMembership(room, user, null, null, null);
+            GrantMembership(room, user, null, null);
         }
 
         /// <summary>
@@ -910,23 +787,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void GrantMembership(Jid room, Jid user, string reason)
         {
-            GrantMembership(room, user, reason, null, null);
-        }
-
-        /// <summary>
-        /// An admin can grant membership to a user; 
-        /// this is done by changing the user's affiliation to "member" 
-        /// (normally based on nick if the user is in the room, or on bare JID if not; 
-        /// in either case, if the nick is provided, that nick becomes the user's default nick in the room
-        /// if that functionality is supported by the implementation)
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="user"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>
-        public void GrantMembership(Jid room, Jid user, string reason, IqCB cb)
-        {
-            GrantMembership(room, user, reason, cb, null);
+            GrantMembership(room, user, reason, null);
         }
 
         /// <summary>
@@ -941,9 +802,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void GrantMembership(Jid room, Jid user, string reason, IqCB cb, object cbArg)
+        public void GrantMembership(Jid room, Jid user, string reason, IqHandler cb)
         {
-            ChangeAffiliation(Affiliation.member, room, user, null, reason, cb, cbArg);
+            ChangeAffiliation(Affiliation.member, room, user, null, reason, cb);
         }
 
         /// <summary>
@@ -957,7 +818,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="nickname"></param>
         public void GrantMembership(Jid room, string nickname)
         {
-            GrantMembership(room, nickname, null, null, null);
+            GrantMembership(room, nickname, null, null);
         }
 
         /// <summary>
@@ -972,23 +833,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void GrantMembership(Jid room, string nickname, string reason)
         {
-            GrantMembership(room, nickname, reason, null, null);
-        }
-
-        /// <summary>
-        /// An admin can grant membership to a user; 
-        /// this is done by changing the user's affiliation to "member" 
-        /// (normally based on nick if the user is in the room, or on bare JID if not; 
-        /// in either case, if the nick is provided, that nick becomes the user's default nick in the room
-        /// if that functionality is supported by the implementation)
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="nickname"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>
-        public void GrantMembership(Jid room, string nickname, string reason, IqCB cb)
-        {
-            GrantMembership(room, nickname, reason, cb, null);
+            GrantMembership(room, nickname, reason, null);
         }
 
         /// <summary>
@@ -1003,9 +848,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void GrantMembership(Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        public void GrantMembership(Jid room, string nickname, string reason, IqHandler cb)
         {
-            ChangeAffiliation(Affiliation.member, room, nickname, reason, cb, cbArg);
+            ChangeAffiliation(Affiliation.member, room, nickname, reason, cb);
         }
 
 
@@ -1039,21 +884,10 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         /// <param name="user"></param>
         /// <param name="cb"></param>
-        public void GrantOwnershipPrivileges(Jid room, Jid user, IqCB cb)
-        {
-            ChangeAffiliation(Affiliation.owner, room, user, cb, null);
-        }
-
-        /// <summary>
-        /// If allowed by an implementation, an owner MAY grant ownership privileges to another user.        
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="user"></param>
-        /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void GrantOwnershipPrivileges(Jid room, Jid user, IqCB cb, object cbArg)
+        public void GrantOwnershipPrivileges(Jid room, Jid user, IqHandler cb)
         {
-            ChangeAffiliation(Affiliation.owner, room, user, cb, cbArg);
+            ChangeAffiliation(Affiliation.owner, room, user, cb);
         }
 
         /*
@@ -1094,20 +928,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void RevokeMembership(Jid room, string nickname, string reason)
         {
-            RevokeMembership(room, nickname, reason, null, null);
-        }
-
-        /// <summary>
-        /// An admin may want to revoke a user's membership
-        /// this is done by changing the user's affiliation to "none"
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="nickname"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>
-        public void RevokeMembership(Jid room, string nickname, string reason, IqCB cb)
-        {
-            RevokeMembership(room, nickname, reason, cb, null);
+            RevokeMembership(room, nickname, reason, null);
         }
 
         /// <summary>
@@ -1119,9 +940,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RevokeMembership(Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        public void RevokeMembership(Jid room, string nickname, string reason, IqHandler cb)
         {
-            ChangeAffiliation(Affiliation.none, room, nickname, reason, cb, cbArg);  
+            ChangeAffiliation(Affiliation.none, room, nickname, reason, cb);  
         }
 
 
@@ -1150,17 +971,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         public void RequestAdminList(Jid room)
         {
-            RequestAdminList(room, null, null);
-        }
-
-        /// <summary>
-        /// Request the list of admins. This could be done by the room owner
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="cb"></param>
-        public void RequestAdminList(Jid room, IqCB cb)
-        {
-            RequestAdminList(room, cb, null);
+            RequestAdminList(room, null);
         }
 
         /// <summary>
@@ -1169,9 +980,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RequestAdminList(Jid room, IqCB cb, object cbArg)
+        public void RequestAdminList(Jid room, IqHandler cb)
         {
-            RequestList(Affiliation.admin, room, cb, cbArg);
+            RequestList(Affiliation.admin, room, cb);
         }
 
         /*
@@ -1197,17 +1008,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         public void RequestOwnerList(Jid room)
         {
-            RequestOwnerList(room, null, null);
-        }
-
-        /// <summary>
-        /// Request the owner list of a room
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="cb"></param>
-        public void RequestOwnerList(Jid room, IqCB cb)
-        {
-            RequestOwnerList(room, cb, null);
+            RequestOwnerList(room, null);
         }
 
         /// <summary>
@@ -1216,9 +1017,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RequestOwnerList(Jid room, IqCB cb, object cbArg)
+        public void RequestOwnerList(Jid room, IqHandler cb)
         {
-            RequestList(Affiliation.owner, room, cb, cbArg);
+            RequestList(Affiliation.owner, room, cb);
         }
 
         /*
@@ -1248,24 +1049,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         public void RequestMemberList(Jid room)
         {
-            RequestMemberList(room, null, null);
-        }
-
-        /// <summary>
-        /// In the context of a members-only room, the member list is essentially a "whitelist" of people 
-        /// who are allowed to enter the room. Anyone who is not a member is effectively banned from entering the room, 
-        /// even if their affiliation is not "outcast".
-        /// In the context of an open room, the member list is simply a list of users (bare JID and reserved nick) 
-        /// who are registered with the room. Such users may appear in a room roster, have their room nickname reserved, 
-        /// be returned in search results or FAQ queries, and the like.
-        /// It is RECOMMENDED that only room admins have the privilege to modify the member list in members-only rooms. 
-        /// To do so, the admin first requests the member list by querying the room for all users with an affiliation of "member"
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="cb"></param>
-        public void RequestMemberList(Jid room, IqCB cb)
-        {
-            RequestMemberList(room, cb, null);
+            RequestMemberList(room, null);
         }
 
         /// <summary>
@@ -1281,9 +1065,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void RequestMemberList(Jid room, IqCB cb, object cbArg)
+        public void RequestMemberList(Jid room, IqHandler cb)
         {
-            RequestList(Affiliation.member, room, cb, cbArg);            
+            RequestList(Affiliation.member, room, cb);
         }
 
         /*
@@ -1313,7 +1097,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="nickname"></param>
         public void GrantModeratorPrivileges(Jid room, string nickname)
         {
-            GrantModeratorPrivileges(room, nickname, null, null, null);
+            GrantModeratorPrivileges(room, nickname, null, null);
         }
 
         /// <summary>
@@ -1325,20 +1109,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         public void GrantModeratorPrivileges(Jid room, string nickname, string reason)
         {
-            GrantModeratorPrivileges(room, nickname, reason, null, null);
-        }
-
-        /// <summary>
-        /// An admin may want to grant moderator privileges to a participant or visitor
-        /// this is done by changing the user's role to "moderator"
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="nickname"></param>
-        /// <param name="reason"></param>
-        /// <param name="cb"></param>
-        public void GrantModeratorPrivileges(Jid room, string nickname, string reason, IqCB cb)
-        {
-            GrantModeratorPrivileges(room, nickname, reason, cb, null);
+            GrantModeratorPrivileges(room, nickname, reason, null);
         }
 
         /// <summary>
@@ -1350,9 +1121,9 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="reason"></param>
         /// <param name="cb"></param>
         /// <param name="cbArg"></param>
-        public void GrantModeratorPrivileges(Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        public void GrantModeratorPrivileges(Jid room, string nickname, string reason, IqHandler cb)
         {
-            ChangeRole(Role.moderator, room, nickname, reason, cb, cbArg);
+            ChangeRole(Role.moderator, room, nickname, reason, cb);
         }
         
         /*
@@ -1375,22 +1146,17 @@ namespace agsXMPP.protocol.x.muc
 
         public void RevokeModerator(Jid room, string nickname)
         {
-            RevokeModerator(room, nickname, null, null, null);
+            RevokeModerator(room, nickname, null, null);
         }
 
         public void RevokeModerator(Jid room, string nickname, string reason)
         {
-            RevokeModerator(room, nickname, reason, null, null);
+            RevokeModerator(room, nickname, reason, null);
         }
 
-        public void RevokeModerator(Jid room, string nickname, string reason, IqCB cb)
+        public void RevokeModerator(Jid room, string nickname, string reason, IqHandler cb)
         {
-            RevokeModerator(room, nickname, reason, cb, null);
-        }
-
-        public void RevokeModerator(Jid room, string nickname, string reason, IqCB cb, object cbArg)
-        {
-            ChangeRole(Role.participant, room, nickname, reason, cb, cbArg);
+            ChangeRole(Role.participant, room, nickname, reason, cb);
         }
 
         /*
@@ -1417,17 +1183,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room">The room.</param>
         public void RequestModeratorList(Jid room)
         {
-            RequestModeratorList(room, null, null);
-        }
-
-        /// <summary>
-        /// Requests the moderator list.
-        /// </summary>
-        /// <param name="room">The room.</param>
-        /// <param name="cb">The cb.</param>
-        public void RequestModeratorList(Jid room, IqCB cb)
-        {
-            RequestModeratorList(room, cb, null);
+            RequestModeratorList(room, null);
         }
 
         /// <summary>
@@ -1436,13 +1192,13 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room">The room.</param>
         /// <param name="cb">The cb.</param>
         /// <param name="cbArg">The cb arg.</param>
-        public void RequestModeratorList(Jid room, IqCB cb, object cbArg)
+        public void RequestModeratorList(Jid room, IqHandler cb)
         {
-            RequestList(Role.moderator, room, cb, cbArg);
+            RequestList(Role.moderator, room, cb);
         }
 
 
-        public void RequestList(Affiliation affiliation, Jid room, IqCB cb, object cbArg)
+        public void RequestList(Affiliation affiliation, Jid room, IqHandler cb)
         {
             AdminIq aIq = new AdminIq();
             aIq.To = room;
@@ -1453,10 +1209,10 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(aIq);
             else
-                m_connection.IqGrabber.SendIq(aIq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(aIq, cb);
         }
 
-        public void RequestList(Role role, Jid room, IqCB cb, object cbArg)
+        public void RequestList(Role role, Jid room, IqHandler cb)
         {
             AdminIq aIq = new AdminIq();
             aIq.To = room;
@@ -1467,7 +1223,7 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(aIq);
             else
-                m_connection.IqGrabber.SendIq(aIq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(aIq, cb);
         }
 
         #region << Create Reserved Room >>
@@ -1479,21 +1235,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room">Jid of the room to create</param>
         public void CreateReservedRoom(Jid room)
         {
-            CreateReservedRoom(room, null, null);
-        }
-
-        /// <summary>
-        /// <para>
-        /// Creates a reserved room. The MUC server replies to this request either with an error if the room already exists 
-        /// or another error occured. Or with the configuration for, for the reserved room which you have submit in the
-        /// second step.
-        /// </para>        
-        /// </summary>
-        /// <param name="room">Jid of the room to create</param>
-        /// <param name="cb">callback for the response</param>
-        public void CreateReservedRoom(Jid room, IqCB cb)
-        {
-            CreateReservedRoom(room, cb, null);
+            CreateReservedRoom(room, null);
         }
 
         /// <summary>
@@ -1506,7 +1248,7 @@ namespace agsXMPP.protocol.x.muc
         /// <param name="room">Jid of the room to create</param>
         /// <param name="cb">callback for the response</param>
         /// <param name="cbArg">optional callback arguments</param>
-        public void CreateReservedRoom(Jid room, IqCB cb, object cbArg)
+        public void CreateReservedRoom(Jid room, IqHandler cb)
         {
             /*
             <iq from='crone1 at shakespeare.lit/desktop'
@@ -1524,7 +1266,7 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(iq);
             else
-                m_connection.IqGrabber.SendIq(iq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(iq, cb);
         }
         #endregion       
 
@@ -1532,45 +1274,30 @@ namespace agsXMPP.protocol.x.muc
         #region << Destroy Room >>
         public void DestroyRoom(Jid room, Jid altVenue)
         {
-            DestroyRoom(room, altVenue, null, null, null);
+            DestroyRoom(room, altVenue, null, null);
         }
 
-        public void DestroyRoom(Jid room, Jid altVenue, IqCB cb)
+        public void DestroyRoom(Jid room, Jid altVenue, IqHandler cb)
         {
-            DestroyRoom(room, altVenue, null, cb, null);
-        }
-
-        public void DestroyRoom(Jid room, Jid altVenue, IqCB cb, object cbArg)
-        {
-            DestroyRoom(room, altVenue, null, cb, cbArg);
+            DestroyRoom(room, altVenue, null, cb);
         }
 
         public void DestroyRoom(Jid room, string reason)
         {
-            DestroyRoom(room, null, reason, null, null);
-        }
-
-        public void DestroyRoom(Jid room, string reason, IqCB cb)
-        {
-            DestroyRoom(room, null, reason, cb, null);
+            DestroyRoom(room, null, reason, null);
         }
 
-        public void DestroyRoom(Jid room, string reason, IqCB cb, object cbArg)
+        public void DestroyRoom(Jid room, string reason, IqHandler cb)
         {
-            DestroyRoom(room, null, reason, cb, cbArg);
+            DestroyRoom(room, null, reason, cb);
         }
 
         public void DestroyRoom(Jid room, Jid altVenue, string reason)
         {
-            DestroyRoom(room, altVenue, reason, null, null);
-        }
-
-        public void DestroyRoom(Jid room, Jid altVenue, string reason, IqCB cb)
-        {
-            DestroyRoom(room, altVenue, reason, cb, null);
+            DestroyRoom(room, altVenue, reason, null);
         }
 
-        public void DestroyRoom(Jid room, Jid altVenue, string reason, IqCB cb, object cbArg)       
+        public void DestroyRoom(Jid room, Jid altVenue, string reason, IqHandler cb)       
         {
             /*
              Example 177. Owner Submits Room Destruction Request
@@ -1604,22 +1331,17 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(iq);
             else
-                m_connection.IqGrabber.SendIq(iq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(iq, cb);
 
         }
         #endregion
 
         public void ModifyList(Jid room, agsXMPP.protocol.x.muc.iq.admin.Item[] items)
         {
-            ModifyList(room, items, null, null);
-        }
-
-        public void ModifyList(Jid room, agsXMPP.protocol.x.muc.iq.admin.Item[] items, IqCB cb)
-        {
-            ModifyList(room, items, cb, null);
+            ModifyList(room, items, null);
         }
 
-        public void ModifyList(Jid room, agsXMPP.protocol.x.muc.iq.admin.Item[] items, IqCB cb, object cbArg)
+        public void ModifyList(Jid room, agsXMPP.protocol.x.muc.iq.admin.Item[] items, IqHandler cb)
         {
             AdminIq aIq = new AdminIq();
             aIq.To = room;
@@ -1633,13 +1355,13 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(aIq);
             else
-                m_connection.IqGrabber.SendIq(aIq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(aIq, cb);
         }
 
 
         #region << private functions >>
 
-        private void ChangeRole(Role role, Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        private void ChangeRole(Role role, Jid room, string nickname, string reason, IqHandler cb)
         {
             AdminIq aIq = new AdminIq();
             aIq.To = room;
@@ -1657,10 +1379,10 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(aIq);
             else
-                m_connection.IqGrabber.SendIq(aIq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(aIq, cb);
         }
         
-        private void ChangeAffiliation(Affiliation affiliation, Jid room, string nickname, string reason, IqCB cb, object cbArg)
+        private void ChangeAffiliation(Affiliation affiliation, Jid room, string nickname, string reason, IqHandler cb)
         {
             AdminIq aIq = new AdminIq();
             aIq.To = room;
@@ -1680,15 +1402,15 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(aIq);
             else
-                m_connection.IqGrabber.SendIq(aIq, cb, cbArg);
+                m_connection.IqGrabber.SendIq(aIq, cb);
         }
 
-        private void ChangeAffiliation(Affiliation affiliation, Jid room, Jid user, IqCB cb, object cbArg)
+        private void ChangeAffiliation(Affiliation affiliation, Jid room, Jid user, IqHandler cb)
         {            
-            ChangeAffiliation(affiliation, room, user, null, null, cb, cbArg);
+            ChangeAffiliation(affiliation, room, user, null, null, cb);
         }
 
-        private void ChangeAffiliation(Affiliation affiliation, Jid room, Jid user, string nickname, string reason, IqCB cb, object cbArg)
+        private void ChangeAffiliation(Affiliation affiliation, Jid room, Jid user, string nickname, string reason, IqHandler cb)
         {
             var aIq = new AdminIq();
             aIq.To = room;
@@ -1711,7 +1433,7 @@ namespace agsXMPP.protocol.x.muc
             if (cb == null)
                 m_connection.Send(aIq);
             else
-                m_connection.IqGrabber.SendIq(aIq, cb, cbArg);      
+                m_connection.IqGrabber.SendIq(aIq, cb);      
         }
         #endregion
     }
diff --git a/mono.m4 b/mono.m4
index 641eee2..6bf828e 100644
--- a/mono.m4
+++ b/mono.m4
@@ -8,6 +8,20 @@ AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER],
 	SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, gmcs)
 ])
 
+AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER_OR_HIGHER],
+[
+    if pkg-config --atleast-version=2.8 mono; then
+        SHAMROCK_FIND_PROGRAM(MCS, dmcs)
+    fi
+    if test "x$MCS" = "x" ; then
+        SHAMROCK_FIND_PROGRAM(MCS, gmcs)
+    fi
+
+    if test "x$MCS" = "x" ; then
+        AC_MSG_ERROR([You need to install 'dmcs' or 'gmcs'])
+    fi
+])
+
 AC_DEFUN([SHAMROCK_FIND_MONO_RUNTIME],
 [
 	SHAMROCK_FIND_PROGRAM_OR_BAIL(MONO, mono)
diff --git a/po-Engine-Campfire/LINGUAS b/po-Engine-Campfire/LINGUAS
index 6c025d2..d11ecfb 100644
--- a/po-Engine-Campfire/LINGUAS
+++ b/po-Engine-Campfire/LINGUAS
@@ -1,8 +1,12 @@
 cs
 da
 de
+es
+fa
 fi
 fr
 pt_BR
 sv
+te
+tr
 zh_CN
diff --git a/po-Engine-Campfire/POTFILES.skip b/po-Engine-Campfire/POTFILES.skip
index 97f7131..e70f382 100644
--- a/po-Engine-Campfire/POTFILES.skip
+++ b/po-Engine-Campfire/POTFILES.skip
@@ -3,6 +3,7 @@ src/Common/
 src/Frontend/
 src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
@@ -10,8 +11,6 @@ src/Frontend-WPF/
 src/Engine/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Server/
diff --git a/po-Engine-Campfire/cs.po b/po-Engine-Campfire/cs.po
index 343a5cd..b859fe4 100644
--- a/po-Engine-Campfire/cs.po
+++ b/po-Engine-Campfire/cs.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-05-22 18:05+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-06 13:58+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
@@ -22,58 +22,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "Připojuji se s campfire..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Připojen ke campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Příkazy campfire"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "Upload"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "Odeslání zprávy se nezdařilo: {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "uploadoval '{0}' ({1} B) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "vstoupil do {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "odešel z {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "uzamkl {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "odemkl {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "změnil téma"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "provedl neznámou činnost"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "Chyba při čtení z proudu: {0}"
diff --git a/po-Engine-Campfire/da.po b/po-Engine-Campfire/da.po
index bc99f6d..bae9c5b 100644
--- a/po-Engine-Campfire/da.po
+++ b/po-Engine-Campfire/da.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-16 06:30+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-05 19:22+0000\n"
 "Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
@@ -22,58 +22,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "Forbinder til campfire ..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Forbundet til campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Campfire-kommandoer"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "Overfør"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "»{0}« ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "Kunne ikke sende besked: {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "har overført »{0}« ({1} B) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "er sluttet til {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "har forladt {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "har låst {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "har åbent {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "har ændret emnet"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "har udført ukendt handling"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "Der opstod en fejl under læsning af strøm: {0}"
diff --git a/po-Engine-Campfire/de.po b/po-Engine-Campfire/de.po
index 406a07e..e0fa78c 100644
--- a/po-Engine-Campfire/de.po
+++ b/po-Engine-Campfire/de.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-14 19:26+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-11 19:35+0000\n"
 "Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -22,58 +22,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "verbinde zu campfire..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Verbunden mit campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Campfire Kommandos"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "Hochladen"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "Nachricht konnte nicht gesendet werden: {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "hat '{0}' ({1} B) hochgeladen {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "hat {0} betreten"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "hat {0} verlassen"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "hat {0} gesperrt"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "hat {0} entsperrt"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "hat das Thema geändert"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "hat eine unbekannte Aktion ausgeführt"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "Fehler beim lesen des Datenstroms: {0}"
diff --git a/po-Engine-Campfire/sv.po b/po-Engine-Campfire/es.po
similarity index 64%
copy from po-Engine-Campfire/sv.po
copy to po-Engine-Campfire/es.po
index 6808f1a..9086cf1 100644
--- a/po-Engine-Campfire/sv.po
+++ b/po-Engine-Campfire/es.po
@@ -3,77 +3,87 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# flugsio <flugsio at gmail.com>, 2013
+# toote, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-17 04:07+0000\n"
-"Last-Translator: flugsio <flugsio at gmail.com>\n"
-"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-10 19:43+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
+"Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:123
 msgid "Connecting to campfire... "
-msgstr "Ansluter till campfire..."
+msgstr "Conectando a campfire..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
-msgstr "Ansluten till campfire"
+msgstr "Conectado a campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
-msgstr "Campfire-kommandon"
+msgstr "Órdenes de campfire"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
-msgstr "Ladda upp"
+msgstr "Subir"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "No se pudo publicar el mensaje: {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
-msgstr "har laddat upp '{0}' ({1} B) {2}"
+msgstr "ha subido «{0}» ({1} B) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
-msgstr "har anslutit {0}"
+msgstr "entró a {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
-msgstr "har lämnat {0}"
+msgstr "ha dejado {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
-msgstr "har låst {0}"
+msgstr "ha bloqueado {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
-msgstr "har låst upp {0}"
+msgstr "ha desbloqueado {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
-msgstr "har ändrat rubrik"
+msgstr "ha cambiado el tema"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
-msgstr "har utfört en okänd åtgärd"
+msgstr "ha realizado una acción desconocida"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "Ocurrió un error al leer del flujo: {0}"
diff --git a/po-Engine-Campfire/zh_CN.po b/po-Engine-Campfire/fa.po
similarity index 70%
copy from po-Engine-Campfire/zh_CN.po
copy to po-Engine-Campfire/fa.po
index 6485293..2a82120 100644
--- a/po-Engine-Campfire/zh_CN.po
+++ b/po-Engine-Campfire/fa.po
@@ -3,77 +3,86 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-15 14:11+0000\n"
-"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
+"Language: fa\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
 #: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:123
 msgid "Connecting to campfire... "
-msgstr "正在连接到 campfire..."
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
-msgstr "已连接到 campfire"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
-msgstr "Campfire 命令"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
-msgstr "上传"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
-msgstr "'{0}' ({1} 字节) {2}"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
-msgstr "已上传 '{0}' ({1} 字节) {2}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
-msgstr "已加入 {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
-msgstr "已离开 {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
-msgstr "已锁定 {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
-msgstr "已解锁 {0}"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
-msgstr "已更改主题"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
-msgstr "已执行未知操作"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr ""
diff --git a/po-Engine-Campfire/fi.po b/po-Engine-Campfire/fi.po
index 2dfe131..8eca4f3 100644
--- a/po-Engine-Campfire/fi.po
+++ b/po-Engine-Campfire/fi.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-23 06:20+0000\n"
-"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -22,58 +22,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "Yhdistetään campfireen..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Yhdistetty campfireen"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Campfire-komennot"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "Lähetä"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "on lähettänyt '{0}' ({1} B) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "on liittynyt huoneeseen {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "on lähtenyt huoneesta {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "on lukinnut huoneen {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "on avannut huoneen {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "on vaihtanut aihetta"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "on suorittanut tuntemattoman toiminnon"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr ""
diff --git a/po-Engine-Campfire/fr.po b/po-Engine-Campfire/fr.po
index 028e98b..1124e47 100644
--- a/po-Engine-Campfire/fr.po
+++ b/po-Engine-Campfire/fr.po
@@ -1,76 +1,89 @@
-# This file is distributed under the same license as the smuxi package.
-# Clément Bourgeois <moonpyk at gmail.com>, 2013.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Clément Bourgeois <moonpyk at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:17+0200\n"
-"PO-Revision-Date: 2013-04-14 21:48+0100\n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-13 21:21+0000\n"
 "Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:123
 msgid "Connecting to campfire... "
 msgstr "Connexion à campfire..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Connecté à campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Commandes Campfire"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "Envoyer"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} O) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "Impossible de poster le message : {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "a envoyé '{0}' ({1} O) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "a rejoint {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "a quitté {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "a bloqué {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "a débloqué {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "a changé le sujet"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "a effectué une action inconnue"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "Erreur pendant la lecture du flux : {0}"
diff --git a/po-Engine-Campfire/pt_BR.po b/po-Engine-Campfire/pt_BR.po
index e3af63b..d9d4c38 100644
--- a/po-Engine-Campfire/pt_BR.po
+++ b/po-Engine-Campfire/pt_BR.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 20:01+0200\n"
-"PO-Revision-Date: 2013-07-15 00:07+0000\n"
-"Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -22,58 +22,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "Conectando a campfire"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:149
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Conectado a campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:181
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Comandos do Campfire "
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:242
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "Upload"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:243
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:354
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "fez upload '{0}' ({1} B) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:386
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "Entrou em {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:395
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "Saiu de {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:403
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "Trancou {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:407
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "Destravou {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:412
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "Mudou o tópico"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:422
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "Fez uma ação desconhecida"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr ""
diff --git a/po-Engine-Campfire/sv.po b/po-Engine-Campfire/sv.po
index 6808f1a..4aa9fa7 100644
--- a/po-Engine-Campfire/sv.po
+++ b/po-Engine-Campfire/sv.po
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # flugsio <flugsio at gmail.com>, 2013
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-17 04:07+0000\n"
-"Last-Translator: flugsio <flugsio at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-10 13:29+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -22,58 +23,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "Ansluter till campfire..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "Ansluten till campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Campfire-kommandon"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
-msgstr "Ladda upp"
+msgstr "Skicka"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} B) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "Kunde inte sända meddelande: {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "har laddat upp '{0}' ({1} B) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
-msgstr "har anslutit {0}"
+msgstr "har anslutit till {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "har lämnat {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "har låst {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "har låst upp {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "har ändrat rubrik"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "har utfört en okänd åtgärd"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "Kunde inte läsa data: {0}"
diff --git a/po-Engine-Campfire/sv.po b/po-Engine-Campfire/te.po
similarity index 70%
copy from po-Engine-Campfire/sv.po
copy to po-Engine-Campfire/te.po
index 6808f1a..bd3260c 100644
--- a/po-Engine-Campfire/sv.po
+++ b/po-Engine-Campfire/te.po
@@ -3,77 +3,86 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# flugsio <flugsio at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-17 04:07+0000\n"
-"Last-Translator: flugsio <flugsio at gmail.com>\n"
-"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
+"Language: te\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:123
 msgid "Connecting to campfire... "
-msgstr "Ansluter till campfire..."
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
-msgstr "Ansluten till campfire"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
-msgstr "Campfire-kommandon"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
-msgstr "Ladda upp"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
-msgstr "'{0}' ({1} B) {2}"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
-msgstr "har laddat upp '{0}' ({1} B) {2}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
-msgstr "har anslutit {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
-msgstr "har lämnat {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
-msgstr "har låst {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
-msgstr "har låst upp {0}"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
-msgstr "har ändrat rubrik"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
-msgstr "har utfört en okänd åtgärd"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr ""
diff --git a/po-Engine-Campfire/pt_BR.po b/po-Engine-Campfire/tr.po
similarity index 69%
copy from po-Engine-Campfire/pt_BR.po
copy to po-Engine-Campfire/tr.po
index e3af63b..da906fe 100644
--- a/po-Engine-Campfire/pt_BR.po
+++ b/po-Engine-Campfire/tr.po
@@ -3,77 +3,86 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Leonardopf <leonardo at piresfelix.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 20:01+0200\n"
-"PO-Revision-Date: 2013-07-15 00:07+0000\n"
-"Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
+"Language: tr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:123
 msgid "Connecting to campfire... "
-msgstr "Conectando a campfire"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:149
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
-msgstr "Conectado a campfire"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:181
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
-msgstr "Comandos do Campfire "
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:242
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
-msgstr "Upload"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:243
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
-msgstr "'{0}' ({1} B) {2}"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:354
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
-msgstr "fez upload '{0}' ({1} B) {2}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:386
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
-msgstr "Entrou em {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:395
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
-msgstr "Saiu de {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:403
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
-msgstr "Trancou {0}"
+msgstr ""
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:407
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
-msgstr "Destravou {0}"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:412
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
-msgstr "Mudou o tópico"
+msgstr ""
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:422
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
-msgstr "Fez uma ação desconhecida"
+msgstr ""
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr ""
diff --git a/po-Engine-Campfire/zh_CN.po b/po-Engine-Campfire/zh_CN.po
index 6485293..37e5fe3 100644
--- a/po-Engine-Campfire/zh_CN.po
+++ b/po-Engine-Campfire/zh_CN.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-04-15 14:11+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-13 08:10+0000\n"
 "Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -22,58 +22,68 @@ msgstr ""
 msgid "Connecting to campfire... "
 msgstr "正在连接到 campfire..."
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:164
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:166
 msgid "Connected to campfire"
 msgstr "已连接到 campfire"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:196
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:200
 msgid "Campfire Commands"
 msgstr "Campfire 命令"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:256
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:262
 msgid "Upload"
 msgstr "上传"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:257
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:263
 #, csharp-format
 msgid "'{0}' ({1} B) {2}"
 msgstr "'{0}' ({1} 字节) {2}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:368
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:367
+#, csharp-format
+msgid "Failed to post message: {0}"
+msgstr "无法发布信息: {0}"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:383
 #, csharp-format
 msgid "has uploaded '{0}' ({1} B) {2}"
 msgstr "已上传 '{0}' ({1} 字节) {2}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:400
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:415
 #, csharp-format
 msgid "has joined {0}"
 msgstr "已加入 {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:409
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:424
 #, csharp-format
 msgid "has left {0}"
 msgstr "已离开 {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:417
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:432
 #, csharp-format
 msgid "has locked {0}"
 msgstr "已锁定 {0}"
 
 #. TRANSLATOR: {0} is the name of the room
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:421
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
 #, csharp-format
 msgid "has unlocked {0}"
 msgstr "已解锁 {0}"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:426
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:441
 msgid "has changed the topic"
 msgstr "已更改主题"
 
-#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:436
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:451
 msgid "has performed an unknown action"
 msgstr "已执行未知操作"
+
+#: ../src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs:492
+#, csharp-format
+msgid "Error reading from stream: {0}"
+msgstr "流读取错误: {0}"
diff --git a/po-Engine-IRC/LINGUAS b/po-Engine-IRC/LINGUAS
index 122af0e..099d402 100644
--- a/po-Engine-IRC/LINGUAS
+++ b/po-Engine-IRC/LINGUAS
@@ -5,6 +5,7 @@ de
 en_GB
 es
 es_AR
+fa
 fi
 fr
 hr
@@ -16,6 +17,7 @@ pt_BR
 ru
 sv
 sk
+te
 tr
 ur
 zh_CN
diff --git a/po-Engine-IRC/POTFILES.skip b/po-Engine-IRC/POTFILES.skip
index d9a6ab9..12eb41b 100644
--- a/po-Engine-IRC/POTFILES.skip
+++ b/po-Engine-IRC/POTFILES.skip
@@ -3,13 +3,12 @@ src/Common/
 src/Engine/
 src/Engine-Campfire/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Frontend/
 src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
diff --git a/po-Engine-IRC/cs.po b/po-Engine-IRC/cs.po
index 3df73bc..df34465 100644
--- a/po-Engine-IRC/cs.po
+++ b/po-Engine-IRC/cs.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-19 21:29+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgid "Accept invite (join room)"
 msgstr "Přijmout pozvánku (vstoupit do místnosti)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "pryč"
 
@@ -52,229 +52,229 @@ msgstr "Používám proxy: {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "Připojování k {0} port {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Spojení s {0} navázáno"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Přihlašování..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Připojení selhalo!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Připojení selhalo! Příčina: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Odpojování..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Odpojování od {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Odpojeno od {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Spojení ukončeno"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Nepřipojeno"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Opětovné připojování..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Opětovné připojování k {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Chyba při opětovném připojování"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Spím {0} milisekund"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "Příkazy správce protokolu IRC"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Neplatný port: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Zařazování vstoupení do fronty: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Již jste v kanálu: {0}. Pro přepnutí na tento kanál zadejte /window {0}."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Aktivní vstupy: {0} - Fronta se vstupy: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Vstupuji do: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Zbývající"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "aktivní vstupy: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "vstupy ve frontě: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "Majitel"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
 msgstr "Administrátor kanálu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
 msgstr "Půl-op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Hlas"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Téma {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "{0} nemá nastaveno téma"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "ban"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "V kanálu nejsou žádné bany"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
 msgstr "výjimka z banů"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
 msgstr "V kanále nejsou žádné výjimky z banů"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
 msgstr "výjimka zvaní"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
 msgstr "V kanále nejsou žádné výjimky zvaní"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Váš režim uživatele je {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} je již v {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "Zvu {0} do {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Uživatelé"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "Celkem {0} uživatelů [{1} opů, {2} hlasových, {3} normálních]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Chyba spojení! Příčina: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Pro příkaz {0} nebyl zadán dostatek parametrů"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Nepřipojen k serveru"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: Neznámá přezdívka/kanál"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Aby nedošlo opět k zahlcení serveru, bylo zvýšeno zpoždění odeslání na {0} ms."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "Přezdívka {0} se již používá"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Nelze vstoupit do kanálu:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "Dostal jste ban"
 
@@ -282,88 +282,88 @@ msgstr "Dostal jste ban"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] požádal o CTCP {2} od {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "Odpověď CTCP PING od {0}: {1} sekund"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0} odpověď od {1}: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] vstoupil do {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] odešel z {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "Byl jste vykopnut z {0} uživatelem {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} byl vykopnut z {1} uživatelem {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Nyní jste znám jako {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} je nyní znám jako {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} změnil téma {1} na: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Změna režimu [{0}] uživatele {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "režim/{0} [{1}] od {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] se odpojil"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "Spojení s {0} na portu {1} selhalo (pokus {2}); další pokus za {3} vteřin..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} je pryč: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Nadále nebudete označován, že jste pryč"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Byl jste označen, že jste pryč"
diff --git a/po-Engine-IRC/da.po b/po-Engine-IRC/da.po
index 0c1a01c..dbcf2f3 100644
--- a/po-Engine-IRC/da.po
+++ b/po-Engine-IRC/da.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-20 19:32+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
 "Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgid "Accept invite (join room)"
 msgstr "Accepter invitation (gå til rum)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "fraværende"
 
@@ -52,229 +52,229 @@ msgstr "Bruger proxy: {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "Forbinder til {0} port {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Forbindelse til {0} etableret"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Logger ind..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Forbindelse mislykkedes!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Forbindelse mislykkedes! Årsag: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Afbryder..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Afbryder fra {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Afbrudt fra {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Forbindelse lukket"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Ikke forbundet"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Genforbinder..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Genforbinder til {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Genforbindingsfejl"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Sover i {0} millisekunder"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "Kommandoer for IrcProtocolManager"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Ugyldig port: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Sætter join sammen: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Allerede tilsluttet til kanal: {0}. Tast /window {0} for at skifte."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Aktive join: {0} - Join i kø: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Joiner: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Tilbage"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "aktive join: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "join i kø: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "Ejer"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
 msgstr "KanalAdm"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
 msgstr "Halfop"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Voice"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Emne for {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "Intet emne angivet for {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "giv karantæne"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "Ingen karantæner i kanal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
 msgstr "Karantæneundtagelse"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
 msgstr "Ingen karantæneundtagelser i kanal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
 msgstr "invitationsundtagelse"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
 msgstr "Ingen invitationsundtagelser i kanal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Din brugertilstand er {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} er allerede på {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "Inviterer {0} til {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Brugere"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "I alt {0} brugere [{1} op'er, {2} voice'er, {3} normale]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Forbindelsesfejl! Årsag: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Ikke nok parametre for {0} kommando"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Ikke forbundet til server"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: Intet sådan brugernavn/kanal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Øgede forsinkelse for send til {0}ms for at undgå at blive oversvømmet på serveren igen."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "Brugernavn {0} er allerede i brug"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Kan ikke slutte til kanal:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "Du har karantæne"
 
@@ -282,88 +282,88 @@ msgstr "Du har karantæne"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] anmod om CTCP {2} fra {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING svar fra {0}: {1} sekunder"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0} svar fra {1}: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] har sluttet sig til {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] har forladt {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "Du blev smidt ud fra {0} af {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} blev smidt ud fra {1} af {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Du er nu kendt som {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} er nu kendt som {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} ændrede emnet på {1} til: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Tilstandsændring [{0}] for bruger {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "tilstand/{0} [{1}] af {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] er gået"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "Forbindelse til {0} port {1} er mislykkedes (forsøg {2}), forsøger om {3} sekunder..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} er fraværende: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Du er ikke længere registreret som fraværende"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Du er registreret som fraværende"
diff --git a/po-Engine-IRC/de.po b/po-Engine-IRC/de.po
index 35785f4..9dfe219 100644
--- a/po-Engine-IRC/de.po
+++ b/po-Engine-IRC/de.po
@@ -8,9 +8,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-22 15:09+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -29,7 +29,7 @@ msgid "Accept invite (join room)"
 msgstr "Einladung akzeptieren (Raum betreten)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "abwesend"
 
@@ -53,229 +53,229 @@ msgstr "Benutze Proxy: {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "Verbinde zu {0} Port {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Verbindung zu {0} ist hergestellt"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Anmelden..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Verbindung ist fehlgeschlagen!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Verbindung ist fehlgeschlagen! Ursache: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Trenne..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Trenne von {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Getrennt von {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Verbindung wurde geschlossen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Nicht verbunden"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Verbinde erneut..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Verbinde erneut zu {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Fehler beim Wiederverbinden"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Warte für {0} Millisekunden"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "IrcProtocolManager Befehle"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Ungültiger Port: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Verzögere Beitritte: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Channel wurde bereits betreten: {0}. Tippen Sie /window {0} um dorthin zu wechseln."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Aktive Beitritte: {0} - Wartende Beitritte: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Betrete: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Verbleibend"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "Aktive Beitritte: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "Wartende Beitritte: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "Besitzer"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
 msgstr "Channeladministrator"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
 msgstr "Halb-Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Voice"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Thema für {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "Kein Thema für {0} gesetzt"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "Sperre"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "Keine Sperren in diesem Channel"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
 msgstr "Sperrausnahme"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
 msgstr "Keine Sperrausnahme in diesem Channel"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
 msgstr "Einladungsausnahme"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
 msgstr "Keine Einladungsausnahme in diesem Channel"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Ihr Benutzermodus ist {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} ist bereits in {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "Lade {0} in {1} ein"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Benutzer"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "Insgesamt {0} Benutzer [{1} Ops, {2} Voices, {3} normal]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Verbindungsfehler! Grund: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Nicht genügend Parameter für den Befehl: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Nicht mit Server verbunden"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: Kein solcher Nick/Channel"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Nachrichtenverzögerung auf {0}ms erhöht, um eine Überflutung des Servers zu verhindern."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "Benutzername {0} ist bereits in Benutzung"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Konnte Channel nicht beitreten:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "Sie sind gesperrt"
 
@@ -283,88 +283,88 @@ msgstr "Sie sind gesperrt"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] fragt CTCP {2} von {3} ab: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING Antwort von {0}: {1} Sekunden"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0} Antwort von {1}: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] hat {2} betreten"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] hat {2} verlassen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "Sie wurden von {1} aus {0} hinausgeworfen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} wurde von {2} aus {1} hinausgeworfen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Sie sind nun bekannt als: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} ist nun bekannt als: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} hat das Thema des Kanals {1} geändert auf: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Mode für Benutzer {1} geändert [{0}]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "mode/{0} [{1}] von {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] hat beendet"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "Die Verbindung {0} über Port {1} ist fehlgeschlagen (Versuch {2}), erneuter Versuch in {3} Sekunden"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} ist abwesend: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Sie sind nicht mehr als abwesend gekennzeichnet"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Sie sind als abwesend gekennzeichnet"
diff --git a/po-Engine-IRC/es.po b/po-Engine-IRC/es.po
index 0eb27e4..480f9c0 100644
--- a/po-Engine-IRC/es.po
+++ b/po-Engine-IRC/es.po
@@ -1,339 +1,370 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Juan Miguel Carrero <streinleght at gmail.com>, 2008-2009.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+# toote, 2013
+# Ricardo Hermosilla <ra.hermosillac at gmail.com>, 2012
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.6.2\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2009-08-12 17:01+0100\n"
-"Last-Translator: Juan Miguel Carrero <streinleght at gmail.com>\n"
-"Language-Team: Spanish Spanish Localization <debian-l10n-spanish at lists.debian.org>\n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-10 19:43+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:234
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:250
 #, csharp-format
 msgid "{0} invites you to {1}"
 msgstr "{0} te ha invitado a {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:255
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1468
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:266
+msgid "Accept invite (join room)"
+msgstr "Aceptar invitación (entrar al canal)"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "ausente"
 
 #. TRANSLATOR: {0} is the amount of seconds
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:261
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:300
 #, csharp-format
 msgid "lag: {0} seconds"
-msgstr "lag: {0} segundos"
+msgstr "demora: {0} segundos"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:267
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:306
 msgid "not connected"
 msgstr "no conectado"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:337
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:366
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Utilizando proxy: {0}:{1}"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:373
 #, csharp-format
 msgid "Connecting to {0} port {1}..."
-msgstr "Conectando a {0} puerto {1}..."
+msgstr "Conectando a {0} en el puerto {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:343
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:438
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
-msgstr "Conexión a {0} establecida"
+msgstr "Se estableció la conexión a {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:346
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Autenticando..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:369
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
-msgstr "Conexión fallida!"
+msgstr "¡Falló la conexión!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:370
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
-msgstr "Conexión fallida! Razón: "
+msgstr "¡Falló la conexión! Razón: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:379
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Desconectando..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:382
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Desconectando de {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Desconectado de {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Conexion terminada"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:395
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:452
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "No conectado"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:424
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Reconectando..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Reconectando a {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:446
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
-msgstr "Error de Reconexión"
+msgstr "Error de reconexión"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
+#, csharp-format
+msgid "Sleeping for {0} milliseconds"
+msgstr "Esperando {0} milisegundos"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:816
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
-msgstr "Comandos IrcProtocolManager"
+msgstr "Órdenes IrcProtocolManager"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:887
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Puerto no válido: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:997
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
-msgstr "Entradas listadas: {0}"
+msgstr "Entradas enlistadas: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1011
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Ya estás dentro del canal: {0}. Escribe /window {0} para cambiar a él."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1046
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Entradas activas: {0} - Entradas enlistadas: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1069
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Entrando: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1071
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Restantes"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "entradas activas: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1085
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "entradas enlistadas: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1455
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1457
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
+msgid "Owner"
+msgstr "Dueño"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
+msgid "ChanAdmin"
+msgstr "ChanAdmin"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
+msgid "Halfop"
+msgstr "HalfOp"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Voz"
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Topic para {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1524
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "No hay topic fijado en {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1604
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
-msgstr "ban"
+msgstr "bloquear"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1614
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
-msgstr "No hay bans en el canal"
+msgstr "No hay bloqueos en el canal"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
+msgid "ban exception"
+msgstr "excepción a bloqueo"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
+msgid "No ban exceptions in channel"
+msgstr "No hay excepciones en el canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1726
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
+msgid "invite exception"
+msgstr "excepción de invitación"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
+msgid "No invite exceptions in channel"
+msgstr "No ha excepciones de invitación en el canal"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
-msgid "Inviting {0} to {1}"
-msgstr "Invitando {0} a {1}"
+msgid "Your user mode is {0}"
+msgstr "Su modo de usuario es {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1730
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} ya se encuentra en {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1755
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
+#, csharp-format
+msgid "Inviting {0} to {1}"
+msgstr "Invitando {0} a {1}"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Usuarios"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1797
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
-msgstr "Total de {0} usuarios [{1} opers, {2} voz, {3} normal]"
+msgstr "Total de {0} usuarios [{1} ops, {2} voz, {3} normal]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1928
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
-msgstr "Error de conexión! Razón: "
+msgstr "¡Error de conexión! Razón:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1938
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "Parámetros insuficientes para el comando {0}"
+msgstr "Parámetros insuficientes para la orden {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1948
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "No conectado al servidor"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2156
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: No existe nick/canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2279
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
-msgid "Increased send delay to {0}ms to avoid being flooded off the server again."
-msgstr "El retraso para los envíos se ha aumentado {0}ms para evitar inundar el servidor nuevamente."
-
-#. TRANSLATOR: the final line will look like this:
-#. -!- Nick {0} is already in use
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2293
-msgid "Nick"
-msgstr "Nick"
+msgid ""
+"Increased send delay to {0}ms to avoid being flooded off the server again."
+msgstr "Se aumentó el retraso para los envíos en {0}ms para evitar inundar el servidor nuevamente."
 
-#. TRANSLATOR: the final line will look like this:
-#. -!- Nick {0} is already in use
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2303
-msgid "is already in use"
-msgstr "ya está en uso"
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
+#, csharp-format
+msgid "Nick {0} is already in use"
+msgstr "Ya se está utilizando el nick {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2329
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
-msgstr "No se puede entrar al canal"
+msgstr "No se puede entrar al canal:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2337
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
-msgstr "Estás baneado"
+msgstr "Estás bloqueado"
 
 #. TRANSLATOR: {0}: nickname, {1}: ident at host,
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2413
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] solicitó CTCP {2} de {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2438
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING respuesta de {0}: {1} segundos"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2446
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
-msgstr "CTCP {0} respuesta de  {1}: {2}"
+msgstr "CTCP {0} respuesta de {1}: {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2643
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
-msgstr "{0} [{1}] entró {2}"
+msgstr "{0} [{1}] entró a {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2769
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] ha dejado {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2794
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
-msgid "You were kicked from {0} by {1} [{2}]"
-msgstr "Has sido pateado de {0} por {1} [{2}]"
+msgid "You were kicked from {0} by {1}"
+msgstr "Ha sido expulsado de {0} por {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2802
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
-msgid "{0} was kicked from {1} by {2} [{3}]"
-msgstr "{0} ha sido pateado de {1} by {2} [{3}]"
+msgid "{0} was kicked from {1} by {2}"
+msgstr "{2} expulsó a {0} de {1}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2819
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2852
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Ahora eres conocido como {0}"
 
-#. TRANSLATOR: do NOT change the position of {0} or {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2857
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} es ahora conocido como {1}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2894
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} cambió el topic de {1} a: {2}"
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2970
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Modo cambiado [{0}] para el usuario {1}"
 
-#. TRANSLATOR: do NOT change the position of {2}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2980
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "modo/{0} [{1}] por {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3017
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] ha salido"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3094
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
-msgid "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} seconds..."
-msgstr "Conexión a {0} por el puerto {1} ha fallado (intento {2}), reintentando en {3} segundos..."
+msgid ""
+"Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
+"seconds..."
+msgstr "Falló la conexión a {0} en el puerto {1} ha fallado (intento {2}), reintentando en {3} segundos..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3143
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} está ausente: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
-msgstr "No estás más tiempo como ausente"
+msgstr "Ya no se encuentra marcado como ausente"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3155
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
-msgstr "Estás ahora ausente"
-
-#~ msgid "Not connected!"
-#~ msgstr "No conectado!"
-
-#~ msgid "lag"
-#~ msgstr "lag"
+msgstr "Ha sido marcado como ausente"
diff --git a/po-Engine-IRC/fa.po b/po-Engine-IRC/fa.po
new file mode 100644
index 0000000..9d069e7
--- /dev/null
+++ b/po-Engine-IRC/fa.po
@@ -0,0 +1,368 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:250
+#, csharp-format
+msgid "{0} invites you to {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:266
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
+msgid "away"
+msgstr ""
+
+#. TRANSLATOR: {0} is the amount of seconds
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:300
+#, csharp-format
+msgid "lag: {0} seconds"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:306
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:366
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:373
+#, csharp-format
+msgid "Connecting to {0} port {1}..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
+#, csharp-format
+msgid "Connection to {0} established"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
+msgid "Logging in..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
+msgid "Connection failed!"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
+msgid "Connection failed! Reason: "
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
+msgid "Disconnecting..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
+#, csharp-format
+msgid "Disconnecting from {0}..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
+#, csharp-format
+msgid "Disconnected from {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
+msgid "Connection closed"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
+msgid "Not connected"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
+msgid "Reconnecting..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
+msgid "Reconnect Error"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
+#, csharp-format
+msgid "Sleeping for {0} milliseconds"
+msgstr ""
+
+#. TRANSLATOR: this line is used as label / category for a
+#. list of commands below
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
+msgid "IrcProtocolManager Commands"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
+#, csharp-format
+msgid "Queuing joins: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
+#, csharp-format
+msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#, csharp-format
+msgid "Active joins: {0} - Queued joins: {1}"
+msgstr ""
+
+#. TRANSLATORS: final message will look like this:
+#. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
+#, csharp-format
+msgid "Joining: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
+msgid "Remaining"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
+#, csharp-format
+msgid "active joins: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
+#, csharp-format
+msgid "queued joins: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
+msgid "IRC Op"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
+msgid "Owner"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
+msgid "ChanAdmin"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
+msgid "Op"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
+msgid "Halfop"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
+msgid "Voice"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
+#, csharp-format
+msgid "Topic for {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
+#, csharp-format
+msgid "No topic set for {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
+msgid "ban"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+msgid "No bans in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
+msgid "ban exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
+msgid "No ban exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
+msgid "invite exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
+msgid "No invite exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
+#, csharp-format
+msgid "Your user mode is {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#, csharp-format
+msgid "{0} is already on {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
+#, csharp-format
+msgid "Inviting {0} to {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
+msgid "Users"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
+#, csharp-format
+msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
+msgid "Connection error! Reason: "
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
+#, csharp-format
+msgid "Not enough parameters for {0} command"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
+msgid "Not connected to server"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
+#, csharp-format
+msgid "{0}: No such nick/channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#, csharp-format
+msgid ""
+"Increased send delay to {0}ms to avoid being flooded off the server again."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
+#, csharp-format
+msgid "Nick {0} is already in use"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
+msgid "Cannot join to channel:"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
+msgid "You are banned"
+msgstr ""
+
+#. TRANSLATOR: {0}: nickname, {1}: ident at host,
+#. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
+#. example:
+#. meebey [meebey at example.com] requested CTCP VERSION from meebey:
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
+#, csharp-format
+msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
+#, csharp-format
+msgid "CTCP PING reply from {0}: {1} seconds"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
+#, csharp-format
+msgid "CTCP {0} reply from {1}: {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
+#, csharp-format
+msgid "{0} [{1}] has joined {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
+#, csharp-format
+msgid "{0} [{1}] has left {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
+#, csharp-format
+msgid "You were kicked from {0} by {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
+#, csharp-format
+msgid "{0} was kicked from {1} by {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
+#, csharp-format
+msgid "You're now known as {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
+#, csharp-format
+msgid "{0} is now known as {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
+#, csharp-format
+msgid "{0} changed the topic of {1} to: {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
+#, csharp-format
+msgid "Mode change [{0}] for user {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
+#, csharp-format
+msgid "mode/{0} [{1}] by {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
+#, csharp-format
+msgid "{0} [{1}] has quit"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
+#, csharp-format
+msgid ""
+"Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
+"seconds..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
+#, csharp-format
+msgid "{0} is away: {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
+msgid "You are no longer marked as being away"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
+msgid "You have been marked as being away"
+msgstr ""
diff --git a/po-Engine-IRC/fi.po b/po-Engine-IRC/fi.po
index 280e819..5e39c6a 100644
--- a/po-Engine-IRC/fi.po
+++ b/po-Engine-IRC/fi.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-20 06:31+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
 "Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgid "Accept invite (join room)"
 msgstr "Hyväksy kutsu (liity kanavalle)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "poissa"
 
@@ -52,229 +52,229 @@ msgstr "Käytetään välityspalvelinta: {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "Yhdistetään palvelimeen {0} porttiin {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Yhteys palvelimeen {0} muodostettu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Kirjaudutaan sisään..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Yhteydenmuodostus epäonnistui!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Yhteydenmuodostus epäonnistui! Syy:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Katkaistaan..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Katkaistaan yhteyttä palvelimeen {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Yhteys palvelimeen {0} katkaistu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Yhteys katkaistu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Ei yhdistetty"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Yhdistetään uudelleen..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Yhdistetään uudelleen palvelimeen {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Virhe uudelleenyhdistämisessä"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Nukutaan {0} millisekuntia"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "IrcProtocolManager -komennot"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Epäkelpo portti: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Liittymisiä jonossa: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Kanava {0} on jo auki. Kirjoita /window {0} siirtyäksesi sinne."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Aktiivisia liittymisiä: {0} - Liittymisiä jonossa: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Liitytään: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Jäljellä"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "aktiivisia liittymisiä: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "liittymisiä jonossa: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC-operaattori"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "Omistaja"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
 msgstr "KanavaHallinnoija"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Operaattori"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
 msgstr "PuoliOperaattori"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Ääni"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Aihe kanavalle {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "Ei aihetta kanavalle {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "Porttikielto"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "Ei porttikieltoja kanavalla"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
 msgstr "Porttikieltopoikkeus"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
 msgstr "Ei porttikieltopoikkeuksia kanavalla"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
 msgstr "kutsupoikkeus"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
 msgstr "Ei kutsupoikkeuksia kanavalla"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Käyttäjätilasi on {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} on jo kanavalla {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "Kutsutaan {0} kanavalle {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Käyttäjät"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "Yhteensä {0} käyttäjää [{1} operaattoria, {2} äänellistä, {3} normaalia]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Yhteysvirhe! Syy:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Ei tarpeeksi parametrejä komennolle {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Ei yhdistettynä palvelimelle"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: Ei tällaista käyttäjää/kanavaa"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Korotettiin lähetysviivettä {0}ms jotta vältytään ylivuotokatkaisulta jatkossa."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "Käyttäjätunnus {0} on jo käytössä"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Ei voi liittyä kanavalle:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "Sinulla on porttikielto"
 
@@ -282,88 +282,88 @@ msgstr "Sinulla on porttikielto"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] teki CTCP {2} -pyynnön {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING -vastaus käyttäjältä {0}: {1} sekuntia"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0} -vastaus käyttäjältä {1}: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] liittyi kanavalle {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] on poistunut kanavalta {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "{1} potkaisi sinut kanavalta {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} poistettiin kanavalta {1} käyttäjän {2} toimesta"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Sinut tunnetaan nyt nimellä {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} on nyt nimeltään {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} muutti kanavan {1} aiheeksi: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Tilan vaihto [{0}] käyttäjälle {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "tila/{0} [{1}] asettajana {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] lopetti"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "Yhteys palvelimeen {0} portti {1} on epäonnistunut (yritys {2}), yritetään uudelleen {3} sekunnin kuluttua..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} on poissa: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Poissaolomerkintä poistettu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Poissaolomerkintä päällä"
diff --git a/po-Engine-IRC/fr.po b/po-Engine-IRC/fr.po
index 7d86dcf..013cef8 100644
--- a/po-Engine-IRC/fr.po
+++ b/po-Engine-IRC/fr.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-19 12:34+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
 "Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgid "Accept invite (join room)"
 msgstr "Accepter l'invitation (rejoindre le canal)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "parti"
 
@@ -52,229 +52,229 @@ msgstr "Utilisation du proxy {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "Connexion au serveur {0}, sur le port {1} en cours..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Connexion au serveur {0} établie"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Enregistrement en cours..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Connexion impossible !"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Connexion impossible ! Raison :"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Déconnexion en cours..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Déconnexion de {0} en cours..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Déconnecté de {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Connexion fermée"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Non connecté"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Reconnexion en cours..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Reconnexion à {0} en cours..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Erreur à la reconnexion"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Mis en pause pendant {0} millisecondes"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "Commandes IrcProtocolManager"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Port invalide : {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Mise des en attente des inscriptions en cours : {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Vous êtes déjà sur le canal: {0}. Utilisez /window {0} pour passer sur celui-ci."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Inscriptions en cours : {0} - Inscriptions en attente : {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Raccordement : {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Restant"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "raccordements actifs : {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "raccordements en attente : {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "Opérateur IRC"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "Propriétaire"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
 msgstr "Administrateur de canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Opérateur"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
 msgstr "Demi-opérateur"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Voicé"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Sujet de {0} : {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "Pas de sujet sélectionné pour {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "ban"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "Aucun utilisateur banni sur le canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
 msgstr "exception de banissement"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
 msgstr "Pas d'exception de banissement sur le canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
 msgstr "exception d'invitation"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
 msgstr "Pas d'exception d'invitation sur le canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Votre mode utilisateur est {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} est déjà sur {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "Invitation de {0} par {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Utilisateurs"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "Total de {0} utilisateurs, [{1} opérateur(s), {2} voicé(s), {3} normal(ux)]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Erreur de connexion ! Raison :"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Pas assez de paramètres pour la commande {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Non connecté au serveur"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: Impossible de trouver le surnom/canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Augmentation du délai d'envoi jusqu'à {0}ms pour éviter d'être kické pour flooding du serveur encore une fois."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "Le pseudo {0} est déjà en cours d'utilisation"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Impossible de rejoindre le canal :"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "Vous êtes banni"
 
@@ -282,88 +282,88 @@ msgstr "Vous êtes banni"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] a fait une requête CTCP {2} de {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "Réponse CTCP PING de {0} : {1} secondes"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "Réponse CTCP {0} de {1} : {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] a rejoint {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] a quitté {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "Vous avez été kické de {0} par {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} a été kické de {1} par {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Vous êtes maintenant connu en tant que {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} est maintenant connu en tant que {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} a changé le sujet de {1} en : {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Changement de mode [{0}] pour l'utilisateur {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "mode/{0} [{1}] par {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] a quitté"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "La connexion vers {0}, port {1} a échoué (essai {2}), nouvel essai dans {3} secondes..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} est parti : {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Vous êtes marqué comme étant revenu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Vous avez été marqué comme étant parti"
diff --git a/po-Engine-IRC/pt_BR.po b/po-Engine-IRC/pt_BR.po
index 710320c..3630e25 100644
--- a/po-Engine-IRC/pt_BR.po
+++ b/po-Engine-IRC/pt_BR.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:14+0200\n"
-"PO-Revision-Date: 2013-07-08 22:15+0000\n"
-"Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,240 +18,263 @@ msgstr ""
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:244
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:250
 #, csharp-format
 msgid "{0} invites you to {1}"
 msgstr "{0} está convidando você para {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:275
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1642
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:266
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "Ausente"
 
 #. TRANSLATOR: {0} is the amount of seconds
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:281
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:300
 #, csharp-format
 msgid "lag: {0} seconds"
 msgstr "Lag: {0} segundos"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:287
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:306
 msgid "not connected"
 msgstr "Não conectado"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:347
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:366
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Usando proxy: {0}:{1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:354
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:373
 #, csharp-format
 msgid "Connecting to {0} port {1}..."
 msgstr "Conectando a {0} na porta {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:364
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:491
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Conexão a {0} feita"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:371
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Registrando log..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:410
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Conexão falhou!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:413
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Conexão falhou! Razão:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:425
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Desconectando..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Desconectando de {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:435
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Desconectado de {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Conexão encerrada"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:447
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:512
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Não conectado"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:478
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Re-conectando..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:485
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Re-conectando a {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:502
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Erro na Re-conexão"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:846
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Parando por {0} milisegundos"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:935
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "Comandos do protocolo Irc"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1008
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Porta inválida: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1109
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Canais para entrar: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1121
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Já entrou no canal: {0}. Digite /window {0} para mudar para ele."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1157
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Entradas em canal ativas: {0} - Canais para entrar: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1180
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1209
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Entrando: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1182
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Restando"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1187
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "Entradas em canal ativas: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1196
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "Canais para entrar: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1629
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1631
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
+msgid "Owner"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
+msgid "ChanAdmin"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1633
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
+msgid "Halfop"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Voz"
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1696
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "Tópico para {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "Sem tópico definido para {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1781
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "banido"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1792
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "Sem banidos nesse canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1885
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
+msgid "ban exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
+msgid "No ban exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
+msgid "invite exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
+msgid "No invite exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Seu modo de usuário é {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1906
-#, csharp-format
-msgid "Inviting {0} to {1}"
-msgstr "Convidando {0} para {1}"
-
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1913
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} já está em {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1940
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
+#, csharp-format
+msgid "Inviting {0} to {1}"
+msgstr "Convidando {0} para {1}"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Usuários"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1982
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "Total de {0} usuários [{1} ops, {2} voz, {3} normal]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2118
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Erro de conexão! Razão:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2130
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Parâmetros insfucientes para o comando {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2139
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Não conectado ao servidor"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2330
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: não encontrado nick/canal"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2455
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Aumentado delay de envio de mensagens para {0}ms para evitar ser expulso do servidor por flood novamente."
 
-#. TRANSLATOR: the final line will look like this:
-#. -!- Nick {0} is already in use
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2469
-msgid "Nick"
-msgstr "Nick"
-
-#. TRANSLATOR: the final line will look like this:
-#. -!- Nick {0} is already in use
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2479
-msgid "is already in use"
-msgstr "já está em uso"
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
+#, csharp-format
+msgid "Nick {0} is already in use"
+msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2489
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Não pode entrar no canal:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "Você está banido"
 
@@ -259,98 +282,88 @@ msgstr "Você está banido"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2580
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] requisitou CTCP {2} de {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2607
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING resposta de {0}: {1} segundos"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2616
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0} resposta de {1}: {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2822
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] entrou em {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2948
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] saiu de {2}"
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2974
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "Você foi expulso de {0} por {1}"
 
-#. TRANSLATOR: do NOT change the position of {0} and {2}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2985
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} foi expulso de {1} por {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3005
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3038
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Você é conhecido como {0} agora"
 
-#. TRANSLATOR: do NOT change the position of {0} or {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3043
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} é conhecido como {1} agora"
 
-#. TRANSLATOR: do NOT change the position of {0} and {2}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3079
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} mudou o tópico do canal {1} para {2}"
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3159
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Mudou modo [{0}] para usuário {1}"
 
-#. TRANSLATOR: do NOT change the position of {2}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3169
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "Modo/{0} [{1}] por {2}"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3206
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] Saiu"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3283
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "Conexão para {0} e porta {1} falhou (Tentativa {2}), tentando novamente em {3} segundos..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3333
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} está ausente: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Você não está mais marcado como ausente"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3353
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Você está marcado como ausente"
diff --git a/po-Engine-IRC/sv.po b/po-Engine-IRC/sv.po
index 1dfa76a..76e31a1 100644
--- a/po-Engine-IRC/sv.po
+++ b/po-Engine-IRC/sv.po
@@ -5,13 +5,14 @@
 # Translators:
 # flugsio <flugsio at gmail.com>, 2013
 # flugsio <flugsio at gmail.com>, 2011, 2012
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-19 13:45+0000\n"
-"Last-Translator: flugsio <flugsio at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-10 16:37+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -29,7 +30,7 @@ msgid "Accept invite (join room)"
 msgstr "Acceptera inbjudan (anslut till rummet)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "borta"
 
@@ -53,318 +54,318 @@ msgstr "Använder proxy: {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "Anluter till {0} port {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "Anslutning till {0} upprättad"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "Loggar in..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "Anslutning misslyckades!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "Anslutning misslyckades! Anledning: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "Kopplar ner..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "Kopplar ner från {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
-msgstr "Anslutning nerkopplad från {0}"
+msgstr "Anslutning till {0} nerkopplad"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "Anslutning stängd"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "Inte ansluten"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "Återansluter..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "Återansluter till {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "Återanslutningsfel"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "Väntar i {0} millisekunder"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "Kommandon för IRC-protokollhanterare"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "Felaktig port: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "Köar kanalanslutningar: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr "Redan ansluten till kanal {0}. Ange kommandot /window {0} för att byta till den."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "Aktiva kanalanslutningar: {0} - Köade kanalanslutningar: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "Ansluter till kanal: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "Återstående"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
-msgstr "aktiva kanalanslutningar: {0}"
+msgstr "aktiva kanaler: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
-msgstr "köade kanalanslutningar: {0}"
+msgstr "köade kanaler: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC Operatör"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "Ägare"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
-msgstr "KanalAdmin"
+msgstr "Kanaladministratör"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "Operatör"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
-msgstr "HalvOperatör"
+msgstr "Halvoperatör"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "Voice"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
-msgstr "Ämne för {0}: {1}"
+msgstr "Rubrik för {0}: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
-msgstr "Inget ämne satt för {0}"
+msgstr "Ingen rubrik satt för {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
-msgstr "bannlys"
+msgstr "utestäng"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
-msgstr "Ingen är bannlyst från kanalen"
+msgstr "Ingen är utestängd från kanalen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
-msgstr "bannlys-undantag"
+msgstr "undantag från utestängning"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
-msgstr "Inga bannlys-undantag i kanalen"
+msgstr "Inga undantag från utestängning finns för kanalen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
-msgstr "inbjuds-undantag"
+msgstr "undantag från inbjudningskrav"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
-msgstr "Inga inbjuds-undantag i kanalen"
+msgstr "Inga undantag för inbjudingar finns för kanalen"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "Ditt användarläge är {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} är redan på {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "Bjuder in {0} till {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "Användare"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "Totalt {0} användare [{1} operatörer, {2} voice, {3} vanliga]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "Fel i anslutning! Anledning: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Inte tillräckligt med parametrar för kommandot {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "Inte ansluten till server"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
-msgstr "{0}: Smeknamnet/kanalen finns inte"
+msgstr "{0}: Användaren/kanalen finns inte"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "Ökar väntetid med {0}ms för att undvika att bli utkastad från servern på grund av för snabbt hanterade kommandon."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "Användarnamnet {0} är upptaget"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "Kan inte ansluta till kanalen:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
-msgstr "Du är bannlyst"
+msgstr "Du är utestängd"
 
 #. TRANSLATOR: {0}: nickname, {1}: ident at host,
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] begärde CTCP {2} från {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING-svar från {0}: {1} sekunder"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0}-svar från {1}: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] anslöt till {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] har lämnat {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "Du sparkades från {0} av {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} blev sparkad från {1} av {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "Du kallas numera {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} kallas numera {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
-msgstr "{0} bytte ämne för {1} till: {2}"
+msgstr "{0} bytte rubrik för {1} till: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "Ändrat användartillstånd [{0}] för användaren {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "användartillstånd/{0} [{1}] av {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] har avslutat"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "Uppkoppling till {0} på port {1} har misslyckats (försök {2}), prövar igen om {3} sekunder..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} är borta: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "Du är inte längre markerad som borta"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "Du har markerats som borta"
diff --git a/po-Engine-IRC/te.po b/po-Engine-IRC/te.po
new file mode 100644
index 0000000..278e5dd
--- /dev/null
+++ b/po-Engine-IRC/te.po
@@ -0,0 +1,368 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:250
+#, csharp-format
+msgid "{0} invites you to {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:266
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
+msgid "away"
+msgstr ""
+
+#. TRANSLATOR: {0} is the amount of seconds
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:300
+#, csharp-format
+msgid "lag: {0} seconds"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:306
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:366
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:373
+#, csharp-format
+msgid "Connecting to {0} port {1}..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
+#, csharp-format
+msgid "Connection to {0} established"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
+msgid "Logging in..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
+msgid "Connection failed!"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
+msgid "Connection failed! Reason: "
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
+msgid "Disconnecting..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
+#, csharp-format
+msgid "Disconnecting from {0}..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
+#, csharp-format
+msgid "Disconnected from {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
+msgid "Connection closed"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
+msgid "Not connected"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
+msgid "Reconnecting..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
+msgid "Reconnect Error"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
+#, csharp-format
+msgid "Sleeping for {0} milliseconds"
+msgstr ""
+
+#. TRANSLATOR: this line is used as label / category for a
+#. list of commands below
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
+msgid "IrcProtocolManager Commands"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
+#, csharp-format
+msgid "Queuing joins: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
+#, csharp-format
+msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#, csharp-format
+msgid "Active joins: {0} - Queued joins: {1}"
+msgstr ""
+
+#. TRANSLATORS: final message will look like this:
+#. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
+#, csharp-format
+msgid "Joining: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
+msgid "Remaining"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
+#, csharp-format
+msgid "active joins: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
+#, csharp-format
+msgid "queued joins: {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
+msgid "IRC Op"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
+msgid "Owner"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
+msgid "ChanAdmin"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
+msgid "Op"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
+msgid "Halfop"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
+msgid "Voice"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
+#, csharp-format
+msgid "Topic for {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
+#, csharp-format
+msgid "No topic set for {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
+msgid "ban"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+msgid "No bans in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
+msgid "ban exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
+msgid "No ban exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
+msgid "invite exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
+msgid "No invite exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
+#, csharp-format
+msgid "Your user mode is {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#, csharp-format
+msgid "{0} is already on {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
+#, csharp-format
+msgid "Inviting {0} to {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
+msgid "Users"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
+#, csharp-format
+msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
+msgid "Connection error! Reason: "
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
+#, csharp-format
+msgid "Not enough parameters for {0} command"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
+msgid "Not connected to server"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
+#, csharp-format
+msgid "{0}: No such nick/channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#, csharp-format
+msgid ""
+"Increased send delay to {0}ms to avoid being flooded off the server again."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
+#, csharp-format
+msgid "Nick {0} is already in use"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
+msgid "Cannot join to channel:"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
+msgid "You are banned"
+msgstr ""
+
+#. TRANSLATOR: {0}: nickname, {1}: ident at host,
+#. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
+#. example:
+#. meebey [meebey at example.com] requested CTCP VERSION from meebey:
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
+#, csharp-format
+msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
+#, csharp-format
+msgid "CTCP PING reply from {0}: {1} seconds"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
+#, csharp-format
+msgid "CTCP {0} reply from {1}: {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
+#, csharp-format
+msgid "{0} [{1}] has joined {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
+#, csharp-format
+msgid "{0} [{1}] has left {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
+#, csharp-format
+msgid "You were kicked from {0} by {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
+#, csharp-format
+msgid "{0} was kicked from {1} by {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
+#, csharp-format
+msgid "You're now known as {0}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
+#, csharp-format
+msgid "{0} is now known as {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
+#, csharp-format
+msgid "{0} changed the topic of {1} to: {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
+#, csharp-format
+msgid "Mode change [{0}] for user {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
+#, csharp-format
+msgid "mode/{0} [{1}] by {2}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
+#, csharp-format
+msgid "{0} [{1}] has quit"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
+#, csharp-format
+msgid ""
+"Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
+"seconds..."
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
+#, csharp-format
+msgid "{0} is away: {1}"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
+msgid "You are no longer marked as being away"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
+msgid "You have been marked as being away"
+msgstr ""
diff --git a/po-Engine-IRC/tr.po b/po-Engine-IRC/tr.po
index fde14ab..8e70bc2 100644
--- a/po-Engine-IRC/tr.po
+++ b/po-Engine-IRC/tr.po
@@ -3,239 +3,279 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# zeugma <sunder67 at hotmail.com>, 2013
+# Umut Albayrak <umutmuh at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Turkish (http://www.transifex.net/projects/p/smuxi/team/tr/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-11-20 11:27+0000\n"
+"Last-Translator: Umut Albayrak <umutmuh at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:234
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:250
 #, csharp-format
 msgid "{0} invites you to {1}"
+msgstr "{0} sizi {1}'e davet ediyor"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:266
+msgid "Accept invite (join room)"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:255
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1468
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
-msgstr ""
+msgstr "uzakta"
 
 #. TRANSLATOR: {0} is the amount of seconds
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:261
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:300
 #, csharp-format
 msgid "lag: {0} seconds"
-msgstr ""
+msgstr "lag: {0} saniye"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:267
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:306
 msgid "not connected"
+msgstr "bağlanılamadı"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:366
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:337
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:373
 #, csharp-format
 msgid "Connecting to {0} port {1}..."
-msgstr ""
+msgstr "Bağlanılıyor {0} kapı {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:343
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:438
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:346
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
-msgstr ""
+msgstr "Oturum açılıyor..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:369
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
-msgstr ""
+msgstr "Bağlantı başarısız!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:370
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
-msgstr ""
+msgstr "Bağlantı başarısız! Sebep:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:379
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
-msgstr ""
+msgstr "Bağlantı kesiliyor..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:382
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
-msgstr ""
+msgstr "{0} bağlantısı kesiliyor..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
-msgstr ""
+msgstr "{0} bağlantısı kesildi"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
-msgstr ""
+msgstr "Bağlantı kapatıldı"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:395
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:452
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
-msgstr ""
+msgstr "Bağlanılmadı"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:424
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
-msgstr ""
+msgstr "Yeniden bağlanılıyor"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
-msgstr ""
+msgstr "{0}'a yeniden bağlanılıyor"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:446
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
+msgstr "Yeniden bağlanma hatası"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
+#, csharp-format
+msgid "Sleeping for {0} milliseconds"
 msgstr ""
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:816
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:887
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
-msgstr ""
+msgstr "Geçersiz kapı: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:997
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1011
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1046
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
-msgstr ""
+msgstr "Aktif katılım: {0} - Kuyruk : {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1069
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1071
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
-msgstr ""
+msgstr "Kalan"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1085
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1455
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
+msgstr "IRC Op"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
+msgid "Owner"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
+msgid "ChanAdmin"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1457
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
+msgstr "Op"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
+msgid "Halfop"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
-msgstr ""
+msgstr "Ses"
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
-msgstr ""
+msgstr "{0} konusu: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1524
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
-msgstr ""
+msgstr "{0} için hiç bir konu belirlenmedi"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1604
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1614
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1726
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
+msgid "ban exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
+msgid "No ban exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
+msgid "invite exception"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
+msgid "No invite exceptions in channel"
+msgstr ""
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
-msgid "Inviting {0} to {1}"
+msgid "Your user mode is {0}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1730
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1755
-msgid "Users"
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
+#, csharp-format
+msgid "Inviting {0} to {1}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1797
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
+msgid "Users"
+msgstr "Kullanıcılar"
+
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1928
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
-msgstr ""
+msgstr "Bağlantı hatası! Sebep:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1938
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1948
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
-msgstr ""
+msgstr "Sunucuya bağlanılamadı"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2156
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2279
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr ""
 
-#. TRANSLATOR: the final line will look like this:
-#. -!- Nick {0} is already in use
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2293
-msgid "Nick"
-msgstr ""
-
-#. TRANSLATOR: the final line will look like this:
-#. -!- Nick {0} is already in use
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2303
-msgid "is already in use"
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
+#, csharp-format
+msgid "Nick {0} is already in use"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2329
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
-msgstr ""
+msgstr "Kanala bağlanılamıyor:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2337
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr ""
 
@@ -243,98 +283,88 @@ msgstr ""
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2413
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2438
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2446
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2643
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2769
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2794
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
-msgid "You were kicked from {0} by {1} [{2}]"
+msgid "You were kicked from {0} by {1}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2802
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
-msgid "{0} was kicked from {1} by {2} [{3}]"
+msgid "{0} was kicked from {1} by {2}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2819
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2852
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
-msgstr ""
+msgstr "{0} olarak biliniyorsunuz"
 
-#. TRANSLATOR: do NOT change the position of {0} or {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2857
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2894
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {1}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2970
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {2}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2980
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr ""
 
-#. TRANSLATOR: do NOT change the position of {0}!
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3017
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3094
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3143
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr ""
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3155
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr ""
-
-
diff --git a/po-Engine-IRC/zh_CN.po b/po-Engine-IRC/zh_CN.po
index e65bb89..c46c5f8 100644
--- a/po-Engine-IRC/zh_CN.po
+++ b/po-Engine-IRC/zh_CN.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:07+0200\n"
-"PO-Revision-Date: 2013-08-19 17:57+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:59+0100\n"
+"PO-Revision-Date: 2013-12-13 08:02+0000\n"
 "Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgid "Accept invite (join room)"
 msgstr "接受邀请 (加入房间)"
 
 #: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:294
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1698
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1740
 msgid "away"
 msgstr "离开"
 
@@ -52,229 +52,229 @@ msgstr "使用代理: {0}:{1}"
 msgid "Connecting to {0} port {1}..."
 msgstr "正在连接到 {0} 端口 {1}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:383
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:510
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:387
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:528
 #, csharp-format
 msgid "Connection to {0} established"
 msgstr "到 {0} 的连接已建立"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:390
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:396
 msgid "Logging in..."
 msgstr "正在登录..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:429
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:436
 msgid "Connection failed!"
 msgstr "连接失败!"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:432
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:440
 msgid "Connection failed! Reason: "
 msgstr "连接失败! 原因: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:444
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:453
 msgid "Disconnecting..."
 msgstr "正在断开连接..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:448
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:458
 #, csharp-format
 msgid "Disconnecting from {0}..."
 msgstr "正在从 {0} 断开连接..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:454
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:465
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "已从 {0} 断开连接"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:459
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:471
 msgid "Connection closed"
 msgstr "连接已关闭"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:466
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:531
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:480
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:555
 msgid "Not connected"
 msgstr "未连接"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:497
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:514
 msgid "Reconnecting..."
 msgstr "正在重新连接..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:504
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:522
 #, csharp-format
 msgid "Reconnecting to {0}..."
 msgstr "正在重新连接到 {0}..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:521
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:541
 msgid "Reconnect Error"
 msgstr "重新连接出错"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:905
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:933
 #, csharp-format
 msgid "Sleeping for {0} milliseconds"
 msgstr "睡眠 {0} 毫秒"
 
 #. TRANSLATOR: this line is used as label / category for a
 #. list of commands below
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:994
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1018
 msgid "IrcProtocolManager Commands"
 msgstr "IrcProtocolManager 命令"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1076
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1100
 #, csharp-format
 msgid "Invalid port: {0}"
 msgstr "端口无效: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1164
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1193
 #, csharp-format
 msgid "Queuing joins: {0}"
 msgstr "正等待加入: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1183
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1213
 #, csharp-format
 msgid "Already joined to channel: {0}. Type /window {0} to switch to it."
-msgstr "已经加入了频道: {0}. 输入 /window {0} 切换过去。"
+msgstr "已经加入了频道: {0}。输入 /window {0} 切换过去。"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1217
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
 #, csharp-format
 msgid "Active joins: {0} - Queued joins: {1}"
 msgstr "已经加入: {0} - 等待加入: {1}"
 
 #. TRANSLATORS: final message will look like this:
 #. Joining: #chan1 - Remaining active joins: #chan2 / queued joins: #chan3
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1240
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1269
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1271
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1301
 #, csharp-format
 msgid "Joining: {0}"
 msgstr "正在加入: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1242
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1273
 msgid "Remaining"
 msgstr "剩余"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1247
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1278
 #, csharp-format
 msgid "active joins: {0}"
 msgstr "已经加入: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1256
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1287
 #, csharp-format
 msgid "queued joins: {0}"
 msgstr "等待加入: {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1679
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1721
 msgid "IRC Op"
 msgstr "IRC 版主"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1681
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1723
 msgid "Owner"
 msgstr "主人"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1683
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1725
 msgid "ChanAdmin"
 msgstr "超级版主"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1685
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1727
 msgid "Op"
 msgstr "版主"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1687
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1729
 msgid "Halfop"
 msgstr "版主"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1731
 msgid "Voice"
 msgstr "认证用户"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1754
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1794
 #, csharp-format
 msgid "Topic for {0}: {1}"
 msgstr "{0} 的主题: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1756
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1796
 #, csharp-format
 msgid "No topic set for {0}"
 msgstr "{0} 尚未设定主题"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1922
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1961
 msgid "ban"
 msgstr "封禁"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1933
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
 msgid "No bans in channel"
 msgstr "频道内无被封禁用户"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1972
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2009
 msgid "ban exception"
 msgstr "封禁例外"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:1983
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2020
 msgid "No ban exceptions in channel"
 msgstr "频道内无封禁例外用户"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2022
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2057
 msgid "invite exception"
 msgstr "邀请例外"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2033
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2068
 msgid "No invite exceptions in channel"
 msgstr "频道内无邀请例外用户"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2149
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2182
 #, csharp-format
 msgid "Your user mode is {0}"
 msgstr "您的用户模式为 {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2176
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
 #, csharp-format
 msgid "{0} is already on {1}"
 msgstr "{0} 已在 {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2184
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2216
 #, csharp-format
 msgid "Inviting {0} to {1}"
 msgstr "正在邀请 {0} 加入 {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2208
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2239
 msgid "Users"
 msgstr "用户"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2259
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2290
 #, csharp-format
 msgid "Total of {0} users [{1} ops, {2} voices, {3} normal]"
 msgstr "总计 {0} 位用户 [{1} 位版主, {2} 位认证用户, {3} 位普通用户]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2393
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2424
 msgid "Connection error! Reason: "
 msgstr "连接出错! 原因: "
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2405
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2436
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "{0} 命令参数不足"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2414
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2445
 msgid "Not connected to server"
 msgstr "未连接到服务器"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2618
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2649
 #, csharp-format
 msgid "{0}: No such nick/channel"
 msgstr "{0}: 无此昵称/频道"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2737
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
 #, csharp-format
 msgid ""
 "Increased send delay to {0}ms to avoid being flooded off the server again."
 msgstr "发送延时已增加到 {0}ms 以避免再次被服务器挤出。"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2752
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2783
 #, csharp-format
 msgid "Nick {0} is already in use"
 msgstr "昵称 {0} 已被占用"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2768
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2799
 msgid "Cannot join to channel:"
 msgstr "无法加入频道:"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2770
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2801
 msgid "You are banned"
 msgstr "您已被封禁"
 
@@ -282,88 +282,88 @@ msgstr "您已被封禁"
 #. {2}: CTCP command, {3}: own nickname, {4}: CTCP parameter
 #. example:
 #. meebey [meebey at example.com] requested CTCP VERSION from meebey:
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2853
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2884
 #, csharp-format
 msgid "{0} [{1}] requested CTCP {2} from {3}: {4}"
 msgstr "{0} [{1}] 请求 CTCP {2} 来自 {3}: {4}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2880
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2911
 #, csharp-format
 msgid "CTCP PING reply from {0}: {1} seconds"
 msgstr "CTCP PING 回复来自 {0}: {1} 秒"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2889
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:2920
 #, csharp-format
 msgid "CTCP {0} reply from {1}: {2}"
 msgstr "CTCP {0} 回复来自 {1}: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3095
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3168
 #, csharp-format
 msgid "{0} [{1}] has joined {2}"
 msgstr "{0} [{1}] 已加入 {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3237
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3310
 #, csharp-format
 msgid "{0} [{1}] has left {2}"
 msgstr "{0} [{1}] 已离开 {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3262
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3335
 #, csharp-format
 msgid "You were kicked from {0} by {1}"
 msgstr "您被 {1} 从 {0} 踢出"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3270
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3343
 #, csharp-format
 msgid "{0} was kicked from {1} by {2}"
 msgstr "{0} 被 {2} 从 {1} 踢出"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3288
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3320
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3361
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3393
 #, csharp-format
 msgid "You're now known as {0}"
 msgstr "您现在的昵称为 {0}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3323
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3396
 #, csharp-format
 msgid "{0} is now known as {1}"
 msgstr "{0} 现在的昵称为 {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3357
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3430
 #, csharp-format
 msgid "{0} changed the topic of {1} to: {2}"
 msgstr "{0} 将主题 {1} 改为: {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3519
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3592
 #, csharp-format
 msgid "Mode change [{0}] for user {1}"
 msgstr "用户 {1} 模式更改 [{0}]"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3536
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3609
 #, csharp-format
 msgid "mode/{0} [{1}] by {2}"
 msgstr "模式/{0} [{1}] by {2}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3562
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3635
 #, csharp-format
 msgid "{0} [{1}] has quit"
 msgstr "{0} [{1}] 已退出"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3639
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3712
 #, csharp-format
 msgid ""
 "Connection to {0} port {1} has failed (attempt {2}), retrying in {3} "
 "seconds..."
 msgstr "到 {0} 端口 {1} 的连接失败 (第 {2}次尝试), 将在 {3} 秒后重试..."
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3689
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3762
 #, csharp-format
 msgid "{0} is away: {1}"
 msgstr "{0} 离开: {1}"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3699
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3772
 msgid "You are no longer marked as being away"
 msgstr "您不再被标为离开状态"
 
-#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3709
+#: ../src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs:3782
 msgid "You have been marked as being away"
 msgstr "您已被标为离开状态"
diff --git a/po-Engine-Campfire/LINGUAS b/po-Engine-JabbR/LINGUAS
similarity index 71%
copy from po-Engine-Campfire/LINGUAS
copy to po-Engine-JabbR/LINGUAS
index 6c025d2..d11ecfb 100644
--- a/po-Engine-Campfire/LINGUAS
+++ b/po-Engine-JabbR/LINGUAS
@@ -1,8 +1,12 @@
 cs
 da
 de
+es
+fa
 fi
 fr
 pt_BR
 sv
+te
+tr
 zh_CN
diff --git a/po-Engine-JabbR/Makefile.in.in b/po-Engine-JabbR/Makefile.in.in
new file mode 100644
index 0000000..378d565
--- /dev/null
+++ b/po-Engine-JabbR/Makefile.in.in
@@ -0,0 +1,218 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper at gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns at gmail.com>
+#
+# This file may be copied and used freely without restrictions.  It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor at redhat.com> to use GETTEXT_PACKAGE
+#   instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob at ximian.com> to install
+#   Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns at gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE_ENGINE_JABBR@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p at .
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+.po.pox:
+	$(MAKE) $(GETTEXT_PACKAGE).pot
+	$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+	$(MSGFMT) -o $@ $<
+
+.po.gmo:
+	file=`echo $* | sed 's,.*/,,'`.gmo \
+	  && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+	sed -f ../intl/po2msg.sed < $< > $*.msg \
+	  && rm -f $@ && gencat $@ $*.msg
+
+
+all: all- at USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+	$(GENPOT)
+
+install: install-data
+install-data: install-data- at USE_NLS@
+install-data-no: all
+install-data-yes: all
+	$(mkdir_p) $(DESTDIR)$(itlocaledir)
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $$dir; \
+	  if test -r $$lang.gmo; then \
+	    $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+	  else \
+	    $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $(srcdir)/$$lang.gmo as" \
+		 "$$dir/$(GETTEXT_PACKAGE).mo"; \
+	  fi; \
+	  if test -r $$lang.gmo.m; then \
+	    $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+	    echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+	  else \
+	    if test -r $(srcdir)/$$lang.gmo.m ; then \
+	      $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+		$$dir/$(GETTEXT_PACKAGE).mo.m; \
+	      echo "installing $(srcdir)/$$lang.gmo.m as" \
+		   "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+	    else \
+	      true; \
+	    fi; \
+	  fi; \
+	done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info tags TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+	done
+
+check: all $(GETTEXT_PACKAGE).pot
+	rm -f missing notexist
+	srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+	if [ -r missing -o -r notexist ]; then \
+	  exit 1; \
+	fi
+
+mostlyclean:
+	rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+	rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+	rm -f Makefile Makefile.in POTFILES stamp-it
+	rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+	rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+	dists="$(DISTFILES)"; \
+	extra_dists="$(EXTRA_DISTFILES)"; \
+	for file in $$extra_dists; do \
+	  test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+	done; \
+	for file in $$dists; do \
+	  test -f $$file || file="$(srcdir)/$$file"; \
+	  ln $$file $(distdir) 2> /dev/null \
+	    || cp -p $$file $(distdir); \
+	done
+
+update-po: Makefile
+	$(MAKE) $(GETTEXT_PACKAGE).pot
+	tmpdir=`pwd`; \
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  echo "$$lang:"; \
+	  result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+	  if $$result; then \
+	    if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	      rm -f $$tmpdir/$$lang.new.po; \
+            else \
+	      if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	        :; \
+	      else \
+	        echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	        rm -f $$tmpdir/$$lang.new.po; \
+	        exit 1; \
+	      fi; \
+	    fi; \
+	  else \
+	    echo "msgmerge for $$lang.gmo failed!"; \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  fi; \
+	done
+
+Makefile POTFILES: stamp-it
+	@if test ! -f $@; then \
+	  rm -f stamp-it; \
+	  $(MAKE) stamp-it; \
+	fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+	       $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po-Engine-JabbR/POTFILES.in b/po-Engine-JabbR/POTFILES.in
new file mode 100644
index 0000000..0620b65
--- /dev/null
+++ b/po-Engine-JabbR/POTFILES.in
@@ -0,0 +1 @@
+src/Engine-JabbR/JabbrProtocolManager.cs
diff --git a/po-Server/POTFILES.skip b/po-Engine-JabbR/POTFILES.skip
similarity index 82%
copy from po-Server/POTFILES.skip
copy to po-Engine-JabbR/POTFILES.skip
index 5694bf0..b8b579f 100644
--- a/po-Server/POTFILES.skip
+++ b/po-Engine-JabbR/POTFILES.skip
@@ -3,16 +3,15 @@ src/Common/
 src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
-src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
-src/Engine-XMPP/
 src/Engine-Twitter/
+src/Engine-XMPP/
 src/Frontend/
+src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
-src/Frontend-GNOME/
 src/Frontend-STFL/
 src/Frontend-SWF/
 src/Frontend-WPF/
+src/Server/
 lib/
diff --git a/po-Engine-JabbR/cs.po b/po-Engine-JabbR/cs.po
new file mode 100644
index 0000000..2a96665
--- /dev/null
+++ b/po-Engine-JabbR/cs.po
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Mirco Bauer <meebey at gmail.com>, 2013
+# Ondřej Hošek <ondra.hosek at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:09+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "Příkazy JabbR"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "Vstoupení do místnosti se nezdařilo. Důvod: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "Odeslání zprávy se nezdařilo. Důvod: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Spojení se nezdařilo! Důvod: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "Spojuji se s {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "Obnovuji spojení s {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "nepřipojen"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "Nezdařilo se získat informace o chatu. Důvod: {0}"
diff --git a/po-Engine-JabbR/da.po b/po-Engine-JabbR/da.po
new file mode 100644
index 0000000..9922363
--- /dev/null
+++ b/po-Engine-JabbR/da.po
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Joe Hansen <joedalton2 at yahoo.dk>, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:10+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "JabbR-kommandoer"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "Tilslutning til rum mislykkedes. Årsag: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "Send besked mislykkedes. Årsag: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Forbindelse mislykkedes! Årsag: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "Forbinder til {0} ..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "Genforbinder til {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "ikke forbundet"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "Hentning af snakinformation mislykkedes. Årsag: {0}"
diff --git a/po-Engine-JabbR/de.po b/po-Engine-JabbR/de.po
new file mode 100644
index 0000000..38f9551
--- /dev/null
+++ b/po-Engine-JabbR/de.po
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Bianca Mix <heavydemon at freenet.de>, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 19:37+0000\n"
+"Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "JabbR Befehle"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "Raum-betreten fehlgeschlagen. Grund: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "Senden der Nachricht fehlgeschlagen. Grund: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Verbindung ist fehlgeschlagen! Ursache: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "Verbinde zu {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "Verbinde erneut zu {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "nicht verbunden"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "Abfragen der Chat Informationen fehlgeschlagen. Grund: {0}"
diff --git a/po-Engine-JabbR/es.po b/po-Engine-JabbR/es.po
new file mode 100644
index 0000000..787cbe0
--- /dev/null
+++ b/po-Engine-JabbR/es.po
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# toote, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:10+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "Órdenes JabbR"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "Falló la entrada al canal. Razón: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "Falló el envío del mensaje. Razón: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "¡Falló la conexión! Razón: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "Conectando a {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "Reconectando a {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "no conectado"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "Falló la obtención de información de chat. Razón: {0}"
diff --git a/po-Engine-JabbR/fa.po b/po-Engine-JabbR/fa.po
new file mode 100644
index 0000000..09bbbd0
--- /dev/null
+++ b/po-Engine-JabbR/fa.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr ""
diff --git a/po-Engine-JabbR/fi.po b/po-Engine-JabbR/fi.po
new file mode 100644
index 0000000..5b4fbd6
--- /dev/null
+++ b/po-Engine-JabbR/fi.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr ""
diff --git a/po-Engine-JabbR/fr.po b/po-Engine-JabbR/fr.po
new file mode 100644
index 0000000..4f953b9
--- /dev/null
+++ b/po-Engine-JabbR/fr.po
@@ -0,0 +1,57 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Clément Bourgeois <moonpyk at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-13 21:38+0000\n"
+"Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "Commandes JabbR"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "Impossible de rejoindre le canal. Raison : {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "Impossible d'envoyer le message. Raison : {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Connexion échouée ! Raison : {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "Connexion à {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "Reconnexion à {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "non connecté"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "Récupération des informations de discussion échouée. Raison : {0}"
diff --git a/po-Engine-JabbR/pt_BR.po b/po-Engine-JabbR/pt_BR.po
new file mode 100644
index 0000000..828fadd
--- /dev/null
+++ b/po-Engine-JabbR/pt_BR.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr ""
diff --git a/po-Engine-JabbR/sv.po b/po-Engine-JabbR/sv.po
new file mode 100644
index 0000000..a2eb999
--- /dev/null
+++ b/po-Engine-JabbR/sv.po
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Martin Bagge <brother at bsnet.se>, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:10+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "JabbR-kommandon"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "Anslutning till rum misslyckades. Anledning: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "Meddelandet kunde inte skickas. Anledning: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Anslutning misslyckades! Anledning: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "Ansluter till {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "Återansluter till {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "inte ansluten"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "Hämtning av chattinformation misslyckades. Anledning: {0}"
diff --git a/po-Engine-JabbR/te.po b/po-Engine-JabbR/te.po
new file mode 100644
index 0000000..92c7c8d
--- /dev/null
+++ b/po-Engine-JabbR/te.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr ""
diff --git a/po-Engine-JabbR/tr.po b/po-Engine-JabbR/tr.po
new file mode 100644
index 0000000..d18c566
--- /dev/null
+++ b/po-Engine-JabbR/tr.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr ""
diff --git a/po-Engine-JabbR/zh_CN.po b/po-Engine-JabbR/zh_CN.po
new file mode 100644
index 0000000..5b730f1
--- /dev/null
+++ b/po-Engine-JabbR/zh_CN.po
@@ -0,0 +1,57 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Dean Lee <xslidian at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:00+0100\n"
+"PO-Revision-Date: 2013-12-13 08:22+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:103
+msgid "JabbR Commands"
+msgstr "JabbR 命令"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:136
+#, csharp-format
+msgid "Joining room failed. Reason: {0}"
+msgstr "房间加入失败。原因: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:162
+#, csharp-format
+msgid "Sending message failed. Reason: {0}"
+msgstr "消息发送失败。原因: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:230
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "连接失败! 原因: {0}"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:243
+#, csharp-format
+msgid "Connecting to {0}..."
+msgstr "正在连接到 {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:340
+#, csharp-format
+msgid "Reconnecting to {0}..."
+msgstr "正在重新连接到 {0}..."
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:433
+msgid "not connected"
+msgstr "未连接"
+
+#: ../src/Engine-JabbR/JabbrProtocolManager.cs:577
+#, csharp-format
+msgid "Retrieving chat information failed. Reason: {0}"
+msgstr "检索聊天信息失败。原因: {0}"
diff --git a/po-Engine-Twitter/LINGUAS b/po-Engine-Twitter/LINGUAS
index efde092..7c91125 100644
--- a/po-Engine-Twitter/LINGUAS
+++ b/po-Engine-Twitter/LINGUAS
@@ -4,6 +4,7 @@ da
 de
 es
 en_GB
+fa
 fi
 fr
 hr
@@ -14,6 +15,7 @@ pt_BR
 ru
 sk
 sv
+te
 tr
 ur
 zh_CN
diff --git a/po-Engine-Twitter/POTFILES.skip b/po-Engine-Twitter/POTFILES.skip
index 3007b93..dc04b9e 100644
--- a/po-Engine-Twitter/POTFILES.skip
+++ b/po-Engine-Twitter/POTFILES.skip
@@ -4,12 +4,11 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Frontend/
 src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
diff --git a/po-Engine-Twitter/cs.po b/po-Engine-Twitter/cs.po
index a3326e4..398badb 100644
--- a/po-Engine-Twitter/cs.po
+++ b/po-Engine-Twitter/cs.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-05-22 17:32+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-06 14:11+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
@@ -18,154 +18,168 @@ msgstr ""
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "Domovský časový přehled"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Odpovědi"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Přímé zprávy"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Užívám proxy: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Připojování ke Twitteru..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Je nutná autorizace Twitteru."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "Otevřete prosím tuto adresu a klikněte na \"Povolit\", aby bylo Smuxi povoleno připojení k Vašemu kontu Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr "Po povolení připojení Smuxi k vašemu kontu Twitter Vám Twitter zobrazí PIN."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Zadejte prosím: /pin PIN_OD_TWITTERU"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Připojování selhalo!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "Připojování selhalo z důvodu: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Připojení selhalo! Příčina: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Probíhá příjem podrobností o uživateli z Twitteru, čekejte prosím..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Příjem podrobností o uživateli dokončen."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Připojení ke Twitteru proběhlo úspěšně."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Příjem podrobností o uživateli z Twitteru selhal z důvodu: "
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "Probíhá příjem seznamu přátel z Twitteru, čekejte prosím..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Příjem seznamu přátel dokončen."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Příjem seznamu přátel z Twitteru selhal z důvodu: "
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Příkazy Twitteru"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Žádná nevyřízená žádost o autorizaci nenalezena!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Autorizace s Twitterem selhala: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr "Twitter neuznal Váš PIN. Zadal jste jej správně?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "Zkuste to, prosím, znovu: uzavřete tuto záložku a znovu se spojte s kontem Twitter \"{0}\"."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Konto Twitter přepnuto z jednoduché autentizace na OAuth."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Autorizace konta Twitter \"{0}\" se Smuxi úspěšná."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "Nelze aktualizovat stav - Příčina: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "Zprávu nelze odeslat - nezadali jste příjemce. Zadejte: /msg $nick zpráva"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "Zprávu nelze odeslat - Příčina: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "Ostatní časové přehledy"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Zprávu nelze odeslat - zadaný uživatel neexistuje."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "Hledání {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "Během přijmu časového pásma přátel z Twitteru nastala chyba. Příčina: "
+"{0}"
+msgstr "Během přijmu časového pásma přátel z Twitteru nastala chyba. Příčina: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "Během přijmu odpovědí z Twitteru nastala chyba z důvodu: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "Během přijmu odpovědí z Twitteru nastala chyba. Příčina: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "Během přijmu přímých zpráv z Twitteru nastala chyba z důvodu: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "Během přijmu přímých zpráv z Twitteru nastala chyba. Příčina: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter neodeslal platnou odpověď; asi mají problémy s kapacitou"
diff --git a/po-Engine-Twitter/da.po b/po-Engine-Twitter/da.po
index da6873c..e9137ef 100644
--- a/po-Engine-Twitter/da.po
+++ b/po-Engine-Twitter/da.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-05 19:25+0000\n"
+"Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,154 +18,168 @@ msgstr ""
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "Hjemmetidslinje"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Svar"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Direkte beskeder"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Bruger proxy: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Tilslutter til Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Twittergodkendelse krævet."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "Åbn venligst den følgende adresse og klik »Tillad« for at tillade Smuxi at forbinde til din Twitterkonto: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr "Når du har tilladt Smuxi at tilgå din Twitterkonto, vil Twitter tilbyde en PIN."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Indtast venligst: /pin PIN_FRA_TWITTER"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Tilslutning mislykkedes!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "Tilslutning mislykkedes! Årsag: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Forbindelse mislykkedes! Årsag: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Henter brugerdetaljer fra Twitter, vent venligst..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Færdig med hentning af brugerdetaljer."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Tilsluttet Twitter."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Kunne ikke hente brugerdetaljer fra Twitter. Årsag: "
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "Henter venneliste fra Twitter, vent venligst..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Afsluttede hentning af venneliste."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Kunne ikke hente venneliste fra Twitter. Årsag: "
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Twitterkommandoer"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Ingen igangværende godkendelsesforespørgsel!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Kunne ikke indhente godkendelse hos Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr "Twitter accepterede ikke din PIN. Indtastede du den korrekt?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "Forsøg igen ved at lukke dette faneblad og forbinde igen til Twitter »{0}-kontoen«."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Migrerede Twitterkonto fra grundlæggende auth til Oauth."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Godkendte Twitterkonto »{0}« til Smuxi"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "Kunne ikke opdatere status - årsag: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "Kan ikke sende besked - intet mål angivet. Brug: /msg $nick besked"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "Kunne ikke sende besked - årsag: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "Andre tidslinjer"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Kunne ikke sende besked - den angivne bruger findes ikke."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "Søg {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "En fejl opstod under hentning af vennetidslinjen fra Twitter. Årsag: "
+"{0}"
+msgstr "Der opstod en fejl under hentning af vennetidslinjen fra Twitter. Årsag: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "En fejl opstod under hentning af svar fra Twitter. Årsag: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "Der opstod en fejl under hentning af svar fra Twitter. Årsag: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "En fejl opstod under hentning af direkte beskeder fra Twitter. Årsag: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "Der opstod en fejl under hentning af direkte beskeder fra Twitter. Årsag: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter sendte ikke et gyldigt svar, de er sikkert overbelastet"
diff --git a/po-Engine-Twitter/de.po b/po-Engine-Twitter/de.po
index b6e3d5d..72fdb25 100644
--- a/po-Engine-Twitter/de.po
+++ b/po-Engine-Twitter/de.po
@@ -4,12 +4,13 @@
 # 
 # Translators:
 # Bianca Mix <heavydemon at freenet.de>, 2011,2013
+# Mirco Bauer <meebey at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:50+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -18,154 +19,168 @@ msgstr ""
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "Zuhause Zeitachse"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Antworten"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Direktnachrichten"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Benutze Proxy: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Verbinde zu Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Twitter Autorisierung erfolgreich"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "Bitte öffnen Sie die follgende URL und klicken Sie \"Allow\" um Smuxi zu erlauben, sich mit ihrem Twitter-Benutzerkonto zu verbinden: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr "Sobald Sie Smuxi erlaubt haben, sich mit Ihrem Twitter-Benutzerkonto zu verbinden, wird Twitter Ihnen eine PIN bereitstellen"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Bitte tippen Sie: /pin PIN_VON_TWITTER"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Verbindung ist fehlgeschlagen!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "Verbindung ist fehlgeschlagen! Grund: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Verbindung ist fehlgeschlagen! Ursache: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Rufe die Benutzerinformationen von Twitter ab, bitte warten Sie..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Abrufen der Benutzerinformationen abgeschlossen."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Erfolgreich zu Twitter verbunden."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Abrufen der Benutzerinformationen fehlgeschlagen. Grund:"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "Rufe Freunde von Twitter ab, bitte warten Sie..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Abrufen der Freunde abgeschlossen."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Abrufen der Freunde von Twitter fehlgeschlagen. Grund :"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Twitter Befehle"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Keine ausstehenden Autorisierungsanfragen!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Autorisierung gegenüber Twitter fehlgeschlagen: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr "Twitter hat Ihre PIN nicht akzeptiert. Haben Sie sie korrekt eingegeben?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "Bitte versuchen Sie es erneut, indem Sie diesen Reiter schließen und sich erneut zum Twitter-Benutzerkont \"{0}\" verbinden."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Migrierte Twitter-Benutzerkonto von basic auth zu OAuth"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Einrichtung des Twitter-Benutzerkontos \"{0}\" für Smuxi war erfolgreich "
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "Konnte den Status nicht aktualisieren - Ursache: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "Kann Nachricht nicht senden - Ziel ist nicht definiert. Verwenden Sie /msg $nick Nachricht"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "Konnte Nachricht nicht senden - Ursache: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "Andere Zeitachsen"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Konnte Nachricht nicht senden - der gewählte Benutzer existiert nicht"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "Suche {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "Ein Fehler ist aufgetreten, während die Freunde Zeitachse von Twitter abgerufen wurde. Grund:"
+"{0}"
+msgstr "Ein Fehler ist aufgetreten, während die Freunde Zeitachse von Twitter abgerufen wurde. Grund: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "Während des Abrufens der Antworten von Twitter ist ein Fehler aufgetreten. Grund:"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "Während des Abrufens der Antworten von Twitter ist ein Fehler aufgetreten. Grund: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "Während des Abrufens der Direktenachrichten von Twitter ist ein Fehler aufgetreten. Grund:"
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "Während des Abrufens der Direktnachrichten von Twitter ist ein Fehler aufgetreten. Grund: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter hat keine gültige Antwort gesendet. Der Dienst ist womöglich überbeansprucht."
diff --git a/po-Engine-Twitter/es.po b/po-Engine-Twitter/es.po
index 014c554..9f9c985 100644
--- a/po-Engine-Twitter/es.po
+++ b/po-Engine-Twitter/es.po
@@ -1,151 +1,186 @@
-# po-Server/smuxi-server.pot Spanish translation file
-# Copyright (C) 2010
-# This file is distributed under the same license as the Smuxi - IRC Client package.
-# Ricardo A. Hermosilla Carrillo <ra.hermosillac at gmail.com>, 2010.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+# toote, 2013
+# Ricardo Hermosilla <ra.hermosillac at gmail.com>, 2012
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2010-09-12 23:30-0400\n"
-"Last-Translator: Ricardo A. Hermosilla Carrillo <ra.hermosillac at gmail.com>\n"
-"Language-Team: Spanish <ES at li.org>\n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-10 18:35+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:125
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
-msgstr "Línea de Tiempo"
+msgstr "Línea de tiempo principal"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:132
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Respuestas"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:139
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
-msgstr "Mensajes Directos"
+msgstr "Mensajes directos"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:174
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Utilizando proxy: {0}:{1}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Conectando a Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:203
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
-msgstr "Autorización de Twitter requerida."
+msgstr "Se requiere autorización de Twitter."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:218
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
-msgid "Please open the following URL and click \"Allow\" to allow Smuxi to connect to your Twitter account: {0}"
-msgstr "Por favor, abra la siguiente dirección y haga click en \"Autorizar\" para permitir a Smuxi conectarse a su cuenta de Twitter: {0}"
+msgid ""
+"Please open the following URL and click \"Allow\" to allow Smuxi to connect "
+"to your Twitter account: {0}"
+msgstr "Por favor, abra la siguiente dirección y haga click en «Autorizar» para permitir que Smuxi se conecte a su cuenta de Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:234
-msgid "Once you have allowed Smuxi to access your Twitter account, Twitter will provide a PIN."
-msgstr "Una vez que haya autorizado a Smuxi acceder a su cuenta, Twitter le proveerá un número secreto."
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
+msgid ""
+"Once you have allowed Smuxi to access your Twitter account, Twitter will "
+"provide a PIN."
+msgstr "Una vez que haya autorizado a Smuxi acceder a su cuenta, Twitter le proveerá un número secreto («PIN»)."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:241
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
-msgstr "Por favor, escriba: /pin NUMERO_SECRETO_DE_TWITTER"
+msgstr "Escriba: /pin NUMERO_SECRETO_DE_TWITTER"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:251
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:291
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
-msgstr "Conexión fallida!"
+msgstr "¡Falló la conexión!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:253
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:293
-msgid "Connection failed! Reason: "
-msgstr "Conexión fallida! Razón: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "¡Falló la conexión! Razón: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:266
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
-msgstr "Buscando los detalles de usuario de Twitter, por favor espere..."
+msgstr "Obteniendo los detalles del usuario de Twitter, por favor espere..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:271
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
-msgstr "Búsqueda realizada."
+msgstr "Finalizó la obtención de los detalles de usuario."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:276
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Conexión satisfactoria con Twitter."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:285
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
-msgstr "Error al buscar información del usuario en Twitter. Razón: "
+msgstr "No se pudo obtener la información del usuario en Twitter. Razón:"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:306
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
-msgstr "Buscando amigos en Twitter, por favor espere..."
+msgstr "Obteniendo lista de amigos en Twitter, por favor espere..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:311
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
-msgstr "Búsqueda realizada."
+msgstr "Finalizó la obtención de la lista de amigos."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:314
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
-msgstr "Error al importar amigos de Twitter. Razón: "
+msgstr "No se pudo obtener la lista de amigos de Twitter. Razón:"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:588
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
-msgstr "Comandos de Twitter"
+msgstr "Órdenes de Twitter"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:632
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
-msgstr "No hay autorización pendiente!"
+msgstr "¡No hay autorización pendiente!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:653
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
-msgstr "Error al autorizar con Twitter: {0}"
+msgstr "No se pudo autorizar con Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
-msgstr "Twitter no ha aceptado tu número secreto. Lo has ingresado correctamente?"
+msgstr "Twitter no ha aceptado tu número secreto. ¿Lo ha ingresado correctamente?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:669
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
-msgid "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" account."
-msgstr "Por favor, inténtelo nuevamente cerrando esta pestaña y reconectando a la cuenta \"{0}\" de Twitter."
+msgid ""
+"Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
+"account."
+msgstr "Inténtelo nuevamente cerrando esta pestaña y conectando a la cuenta de Twitter «{0}» nuevamente."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:709
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
-msgstr "Cuenta de Twitter migrada de autenticación básica para OAuth"
+msgstr "Se migró la cuenta de Twitter desde autenticación básica a OAuth."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:722
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
-msgstr "Autorización satisfactoria de la cuenta Twitter \"{0}\" para Smuxi"
+msgstr "Se autorizó la cuenta Twitter «{0}» para Smuxi"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:744
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
-msgstr "No se puede actualizar su estado. Razón: {0}"
+msgstr "No se pudo actualizar su estado - Razón: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
-msgstr "No se puede enviar el mensaje. No se ha seleccionado un destinatario. Use: /msg $nick mensaje"
+msgstr "No se puede enviar el mensaje - no ha seleccionado un destinatario. Utilice: /msg $nick mensaje"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:766
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:803
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
-msgstr "No se puede enviar el mensaje. Razón: {0}"
+msgstr "No se pudo enviar el mensaje - Razón: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:790
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "Otras líneas temporales"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
-msgstr "No se puede enviar el mensaje. El usuario especificado no existe."
+msgstr "No se pudo enviar el mensaje - el usuario especificado no existe."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:879
-msgid "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "Un error ha ocurrido mientras se intentaba importar la línea de tiempo de sus amigos de Twitter. Razón: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "Buscar {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:980
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "Un error ha ocurrido mientras se importaban las respuestas desde Twitter. Razón: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
+msgid ""
+"An error occurred while fetching the friends timeline from Twitter. Reason: "
+"{0}"
+msgstr "Ocurrió un error al obtener la línea temporal de amigos desde Twitter. Razón: {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "Ocurrió un error al obtener respuestas desde Twitter. Razón: {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
+msgid ""
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "Ocurrió un error al obtener mensajes directos desde Twitter. Razón: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1073
-msgid "An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "Un error ha ocurrido mientras se importaban los mensajes directos desde Twitter. Razón: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
+msgid "Twitter didn't send a valid response, they're probably overloaded"
+msgstr "Twitter no envió una respuesta válida, seguramente está sobrecargado."
diff --git a/po-Engine-Twitter/tr.po b/po-Engine-Twitter/fa.po
similarity index 78%
copy from po-Engine-Twitter/tr.po
copy to po-Engine-Twitter/fa.po
index 9f8c024..79c1662 100644
--- a/po-Engine-Twitter/tr.po
+++ b/po-Engine-Twitter/fa.po
@@ -6,158 +6,179 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Turkish (http://www.transifex.net/projects/p/smuxi/team/tr/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: tr\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:125
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:132
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:139
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:174
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:203
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:218
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:234
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:241
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:251
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:291
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:253
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:293
-msgid "Connection failed! Reason: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:266
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:271
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:276
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:285
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:306
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:311
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:314
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:588
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:632
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:653
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:669
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:709
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:722
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:744
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:766
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:803
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:790
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:879
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
+"{0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:980
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1073
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
 msgstr ""
 
-
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
+msgid "Twitter didn't send a valid response, they're probably overloaded"
+msgstr ""
diff --git a/po-Engine-Twitter/fi.po b/po-Engine-Twitter/fi.po
index 5214d97..3cf98d4 100644
--- a/po-Engine-Twitter/fi.po
+++ b/po-Engine-Twitter/fi.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-08-21 11:16+0000\n"
-"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,154 +18,168 @@ msgstr ""
 "Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "Koti-aikajana"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Vastaukset"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Suoraviestit"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Käytetään välityspalvelinta: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Yhdistetään Twitteriin..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Twitter-tunnistetiedot vaaditaan."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "Avaa seuraava URL ja valitse \"Allow\" salliaksesi Smuxin yhdistäminen Twitter-tiliisi: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr "Kun olet sallinut Smuxin pääsyn Twitter-tiliisi, Twitter antaa sinulle PIN-koodin."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Kirjoita: /pin PIN_JONKA_SAIT_TWITTERILTÄ"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Yhteydenmuodostus epäonnistui!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "Yhteydenmuodostus epäonnistui! Syy:"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Noudetaan käyttäjätietoja Twitteristä, odota ole hyvä..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Käyttäjätietojen haku valmis."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Yhdistäminen Twitteriin onnistui."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Käyttäjätietojen haku Twitteristä epäonnistui. Syy:"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "Noudetaan ystäviä Twitteristä, odota ole hyvä..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Ystävien haku valmis."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Ystävien haku Twitteristä epäonnistui. Syy:"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Twitter-komennot"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Ei voimassaolevaa auktorisointipyyntöä!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Auktorisointi Twitterin kanssa epäonnistui: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr "Twitter ei hyväksynyt PIN-koodiasi. Syötitkö sen oikein?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "Yritä uudelleen sulkemalla tämä välilehti ja uudelleenyhdistämällä Twitter \"{0}\"-tiliin."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Muutettiin Twitter-autentikointi perustilasta OAuth-tilaan."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Twitter-tili \"{0}\" autorisoitu onnistuneesti Smuxiin"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "Tilaa ei voitu päivittää - Syy: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "Viestiä ei voida lähettää - kohdetta ei ole määritelty. Käytä: /msg $nick viesti"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "Viestiä ei voitu lähettää - Syy: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Viestiä ei voitu lähettää - määriteltyä käyttäjää ei ole."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "Virhe haettaessa ystävien aikajanaa Twitteristä. Syy:"
+"{0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "Virhe haettaessa vastauksia Twitteristä. Syy:"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "Virhe haettaessa suoraviestejä Twitteristä. Syy:"
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter ei palauttanut oikeanlaista vastausta, palvelussa voi olla ruuhkaa"
diff --git a/po-Engine-Twitter/fr.po b/po-Engine-Twitter/fr.po
index da441e9..32818e2 100644
--- a/po-Engine-Twitter/fr.po
+++ b/po-Engine-Twitter/fr.po
@@ -1,190 +1,185 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
-# Clément Bourgeois <moonpyk at gmail.com>, 2011.
+# Clément Bourgeois <moonpyk at gmail.com>, 2011-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:17+0200\n"
-"PO-Revision-Date: 2013-04-10 22:27+0100\n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-13 21:27+0000\n"
 "Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:120
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "Chronologie générale"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:131
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Réponses"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:142
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Messages directs"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:190
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
-msgstr "Utilisation du proxy: {0}:{1}"
+msgstr "Utilisation du proxy : {0} : {1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:210
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Connexion à Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:248
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Autorisation de Twitter nécessaire"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:255
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
-msgstr ""
-"Veuillez ouvrir l'URL suivante et cliquez sur \"Autoriser\\” pour autoriser "
-"Smuxi à se connecter sur votre compte Twitter : {0}"
+msgstr "Veuillez ouvrir l'URL suivante et cliquez sur \"Autoriser\\” pour autoriser Smuxi à se connecter sur votre compte Twitter : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:271
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
-msgstr ""
-"Une fois que vous avez autorisé Smuxi à acceder à votre compte Twitter, "
-"Twitter va vous envoyer un code PIN."
+msgstr "Une fois que vous avez autorisé Smuxi à accéder à votre compte Twitter, Twitter va vous envoyer un code PIN."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:278
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Veuillez taper : /pin CODE_PIN_DE_TWITTER"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:285
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Connexion impossible !"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:287
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:327
-msgid "Connection failed! Reason: "
-msgstr "Connexion impossible ! Raison : "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Connexion échouée ! Raison : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:300
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Téléchargement des détails utilisateur Twitter. Veuillez patienter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:305
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Téléchargement des détails utilisateur terminée."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:310
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Connexion à Twitter réussie."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Impossible de télécharger les détails utilisateur de Twitter. Raison :"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:340
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
-msgstr ""
-"Téléchargement de la liste des amis Twitter en cours, veuillez patienter..."
+msgstr "Téléchargement de la liste des amis Twitter en cours, veuillez patienter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:345
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Téléchargement de la liste des amis terminée."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:348
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Impossible de télécharger la liste des amis Twitter. Raison :"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:625
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Commandes Twitter"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:666
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Aucune requête d'autorisation en attente !"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:687
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Impossible d'obtenir une autorisation de Twitter : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:695
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
-msgstr ""
-"Twitter n'a pas accepté votre code PIN. L'avez vous entré correctement ?"
+msgstr "Twitter n'a pas accepté votre code PIN. L'avez vous entré correctement ?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
-msgstr ""
-"Veuillez réessayer en fermant cet onglet et en vous connectant à nouveau au "
-"compte Twitter \"{0}\"."
+msgstr "Veuillez réessayer en fermant cet onglet et en vous connectant à nouveau au compte Twitter \"{0}\"."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:744
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
-msgstr ""
-"Le compte Twitter géré par autorisation basique à été migré la methode OAuth."
+msgstr "Le compte Twitter géré par autorisation basique à été migré la methode OAuth."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:758
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
-msgstr ""
-"Twitter a accepté la demande d'autorisation Smuxi pour le compte \"{0}\"."
+msgstr "Twitter a accepté la demande d'autorisation Smuxi pour le compte \"{0}\"."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:780
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "Impossible de mettre à jour le statut - Raison : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:789
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
-msgstr ""
-"Impossible d'envoyer le message. Aucune cible spécifiée. Utilisez /msg $nick "
-"message"
+msgstr "Impossible d'envoyer le message. Aucune cible spécifiée. Utilisez /msg $nick message"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:802
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:839
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "Impossible d'envoyer le message - Raison : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:826
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "Autres chronologies"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Impossible d'envoyer le message. L'utilisateur spécifié n'existe pas."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:915
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "Rechercher {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr ""
-"Une erreur c'est produite pendant le téléchargement de la chronologie des "
-"amis Twitter. Raison :"
+"{0}"
+msgstr "Une erreur est survenue pendant la récupération de la chronologie des amis depuis Twitter. Raison : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1022
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr ""
-"Une erreur c'est produite pendant le téléchargement des réponses Twitter. "
-"Raison :"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "Une erreur est survenue pendant la récuperation des réponses depuis Twitter. Raison : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1118
-msgid "An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr ""
-"Un erreur s'est produite pendant le téléchargement des messages directs "
-"Twitter. Raison :"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
+msgid ""
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "Une erreur est survenue pendant la récupération des messages privés depuis Twitter. Raison : {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1462
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
-msgstr ""
-"Twitter n'a pas envoyé de réponse valide, le service est peut-être en sur-"
-"capacité."
+msgstr "Twitter n'a pas envoyé de réponse valide, le service est peut-être en surcapacité"
diff --git a/po-Engine-Twitter/pt_BR.po b/po-Engine-Twitter/pt_BR.po
index 3bfdb94..6ba7c85 100644
--- a/po-Engine-Twitter/pt_BR.po
+++ b/po-Engine-Twitter/pt_BR.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-07-10 20:44+0000\n"
-"Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,154 +18,168 @@ msgstr ""
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "Timeline de início"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Respostas"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Mensagens diretas"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Usando proxy: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Conectando ao Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Autorização no Twitter necessária."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "Abra a seguinte URL e clique em \"autorizar(Allow)\" para autorizar o Smuxi a conectar a sua conta do Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr "Assim que você autorizar Smuxi a acessar sua conta do Twitter. O Twitter providenciará à você um código PIN."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Por favor digite: /pin PIN_RECEBIDO_NO_TWITTER"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Conexão falhou!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "Conexão falhou! Razão:"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Recebendo dados de usuário do Twitter, por favor aguarde..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Finalizado recebimento de dados."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Conectado ao Twitter com sucesso."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Não foi possível receber dados do Twitter. Razão:"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "Recebendo os amigos do Twitter, por favor aguarde..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Finalizado lista de amigos."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Falha no download de amigos do Twitter. Razão:"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Comandos Twitter"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Sem requisição de autorizações pendentes!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Falha em autorização com o Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr "Twitter não aceitou seu código PIN. Você entrou o código correto?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "Por favor tente novamente fechando essa aba e re-conectando a conta \"{0}\" do Twitter."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Conta do Twitter mudada de autenticação Básica para OAuth."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Conta do Twitter \"{0}\" autorizada para o Smuxi"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "Não foi possível atualizar status - Razão: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "Não foi possível enviar mensagem - Nenhum alvo especificado. Use: /msg $nick message"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "Não foi possível enviar mensagem - Razão: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Não foi possível enviar mensagem - O usuário especificado não existe."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "Houve um erro ao pegar lista de amigos da sua timeline no Twitter. Razão:"
+"{0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "Falha ao pegar respostas do Twitter. Razão:"
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "Um erro ocorreu enquanto pegava mensagens diretas do Twitter. Razão:"
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter não enviou uma resposta válida. Eles provavelmente estão sobrecarregados"
diff --git a/po-Engine-Twitter/sv.po b/po-Engine-Twitter/sv.po
index 2ef0b99..1470f2a 100644
--- a/po-Engine-Twitter/sv.po
+++ b/po-Engine-Twitter/sv.po
@@ -5,13 +5,14 @@
 # Translators:
 # flugsio <flugsio at gmail.com>, 2013
 # flugsio <flugsio at gmail.com>, 2011
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-10 14:54+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,154 +20,168 @@ msgstr ""
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
-msgstr "Hem Tidslinje"
+msgstr "Din tidslinje"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "Svar"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "Direktmeddelanden"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "Använder proxy: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "Ansluter till Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr "Inloggning till Twitter krävs."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "Vänligen öppna följande URL och klicka \"Godkänn\" för att tillåta Smuxi att ansluta till ditt Twitterkonto: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
-msgstr "När du tillåtit Smuxi tillgång till ditt Twitterkonto, kommer Twitter att tillhandhålla en PIN-kod."
+msgstr "När Smuxi har tillgång till ditt Twitterkonto, kommer Twitter att tillhandhålla en PIN-kod."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "Vänligen skriv: /pin PIN_KOD_FRÅN_TWITTER"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "Anslutning misslyckades!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "Anslutning misslyckades! Anledning: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "Anslutning misslyckades! Anledning: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "Hämtar användarinformation från Twitter. Vänligen vänta..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "Hämtade användarinformation."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "Ansluten till Twitter."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "Misslyckades med att hämta användarinformation från Twitter. Anledning: "
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "Hämtar vänner från Twitter. Vänligen vänta..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "Hämtade vänner."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "Misslyckades med att hämta vänner från Twitter. Anledning: "
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Twitter-kommandon"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "Ingen pågående auktoriseringsansökan!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
-msgstr "Misslyckades att autorisera med Twitter: {0}"
+msgstr "Misslyckades att autentisera med Twitter: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
-msgstr "Twitter accepterade inte din PIN-kod.  Angav du den korrekt?"
+msgstr "Twitter accepterade inte din PIN-kod. Angav du den korrekt?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "Vänligen försök igen genom att stänga denna flik och återansluta till Twitterkontot \"{0}\"."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Migrerade Twitterkontot från enkel auktorisering till OAuth."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Lyckades att auktorisera Twitterkontot \"{0}\" för Smuxi"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
-msgstr "Kunde inte uppdatera status - Anledning: {0}"
+msgstr "Kunde inte uppdatera status. Anledning: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "Kan inte skicka meddelande - inget mål specificerades. Använd /msg $nick meddelande"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
-msgstr "Kunde inte skicka meddelande - Anledning: {0}"
+msgstr "Kunde inte skicka meddelande. Anledning: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "Andra tidslinjer"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "Kunde inte skicka meddelande - den specificerade användaren hittades inte."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "Sök {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "Ett fel uppstod vid hämtning av kvitter från dina vänner. Anledning: "
+"{0}"
+msgstr "Ett fle uppstod när vännernas tidslinjer skulle hämtas från Twitter. Anledning: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "Ett fel uppstod vid hämtning av svar från Twitter. Anledning: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "Ett fel uppstod när svar skulle hämtas från Twitter. Anledning: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "Ett fel uppstod vid hämtning av direktmeddelanden från Twitter. Anledning: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "Ett fel uppstod när direktmeddelanden skulle hämtas från Twitter. Anledning: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter skickade inte ett giltigt svar, de är antagligen överbelastade"
diff --git a/po-Engine-Twitter/tr.po b/po-Engine-Twitter/te.po
similarity index 78%
copy from po-Engine-Twitter/tr.po
copy to po-Engine-Twitter/te.po
index 9f8c024..cccb145 100644
--- a/po-Engine-Twitter/tr.po
+++ b/po-Engine-Twitter/te.po
@@ -6,158 +6,179 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Turkish (http://www.transifex.net/projects/p/smuxi/team/tr/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: tr\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:125
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:132
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:139
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:174
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:203
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:218
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:234
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:241
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:251
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:291
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:253
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:293
-msgid "Connection failed! Reason: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:266
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:271
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:276
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:285
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:306
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:311
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:314
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:588
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:632
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:653
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:669
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:709
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:722
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:744
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:766
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:803
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:790
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:879
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
+"{0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:980
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1073
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
 msgstr ""
 
-
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
+msgid "Twitter didn't send a valid response, they're probably overloaded"
+msgstr ""
diff --git a/po-Engine-Twitter/tr.po b/po-Engine-Twitter/tr.po
index 9f8c024..dbd7fa2 100644
--- a/po-Engine-Twitter/tr.po
+++ b/po-Engine-Twitter/tr.po
@@ -6,158 +6,179 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Turkish (http://www.transifex.net/projects/p/smuxi/team/tr/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:125
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:132
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:139
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:174
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:203
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:218
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:234
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:241
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:251
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:291
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:253
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:293
-msgid "Connection failed! Reason: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:266
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:271
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:276
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:285
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:306
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:311
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:314
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:588
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:632
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:653
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:669
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:709
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:722
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:744
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:766
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:803
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:790
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:879
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr ""
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
+"{0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:980
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
 msgstr ""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1073
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
 msgstr ""
 
-
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
+msgid "Twitter didn't send a valid response, they're probably overloaded"
+msgstr ""
diff --git a/po-Engine-Twitter/zh_CN.po b/po-Engine-Twitter/zh_CN.po
index 70b9635..f7c5fca 100644
--- a/po-Engine-Twitter/zh_CN.po
+++ b/po-Engine-Twitter/zh_CN.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:15+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-13 08:14+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,154 +18,168 @@ msgstr ""
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:127
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:124
 msgid "Home Timeline"
 msgstr "主时间线"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:138
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:135
 msgid "Replies"
 msgstr "回复"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:149
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:146
 msgid "Direct Messages"
 msgstr "私信"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:197
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:193
 #, csharp-format
 msgid "Using proxy: {0}:{1}"
 msgstr "使用代理: {0}:{1}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:204
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:212
 msgid "Connecting to Twitter..."
 msgstr "正在连接到 Twitter..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:242
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:254
 msgid "Twitter authorization required."
-msgstr "需要 Twitter 认证。"
+msgstr "需要 Twitter 授权认证。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:249
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:261
 #, csharp-format
 msgid ""
 "Please open the following URL and click \"Allow\" to allow Smuxi to connect "
 "to your Twitter account: {0}"
 msgstr "请打开下面的 URL 并点击“允许”授权 Smuxi 连接您的 Twitter 账户: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:265
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:277
 msgid ""
 "Once you have allowed Smuxi to access your Twitter account, Twitter will "
 "provide a PIN."
 msgstr "在您允许 Smuxi 访问您的 Twitter 账户后,Twitter 将提供 PIN。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:272
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:284
 msgid "Please type: /pin PIN_FROM_TWITTER"
 msgstr "请输入: /pin TWITTER_给您的_PIN"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:279
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:292
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:354
 msgid "Connection failed!"
 msgstr "连接失败!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:281
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:321
-msgid "Connection failed! Reason: "
-msgstr "连接失败! 原因: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:297
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:358
+#, csharp-format
+msgid "Connection failed! Reason: {0}"
+msgstr "连接失败! 原因: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:294
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:312
 msgid "Fetching user details from Twitter, please wait..."
 msgstr "正在从 Twitter 装载用户详细信息,请稍候..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:299
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:319
 msgid "Finished fetching user details."
 msgstr "装载用户详细信息完成。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:304
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:325
 msgid "Successfully connected to Twitter."
 msgstr "成功连接到 Twitter。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:313
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:343
 msgid "Failed to fetch user details from Twitter. Reason: "
 msgstr "从 Twitter 装载用户详细信息失败。原因: "
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:334
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:376
 msgid "Fetching friends from Twitter, please wait..."
 msgstr "正在从 Twitter 装载好友,请稍候..."
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:339
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:385
 msgid "Finished fetching friends."
 msgstr "装载好友完成。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:342
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:389
 msgid "Failed to fetch friends from Twitter. Reason: "
 msgstr "从 Twitter 装载好友失败。原因: "
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:619
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:703
 msgid "Twitter Commands"
 msgstr "Twitter 命令"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:661
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:749
 msgid "No pending authorization request!"
 msgstr "无待处理的认证请求!"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:682
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:770
 #, csharp-format
 msgid "Failed to authorize with Twitter: {0}"
 msgstr "Twitter 认证失败: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:690
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:778
 msgid "Twitter did not accept your PIN.  Did you enter it correctly?"
 msgstr "Twitter 不接受您提供的 PIN。您是否已经正确输入?"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:698
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:786
 #, csharp-format
 msgid ""
 "Please retry by closing this tab and reconnecting to the Twitter \"{0}\" "
 "account."
 msgstr "请关闭本标签,重新连接 Twitter \"{0}\" 账户再次尝试。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:739
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:827
 msgid "Migrated Twitter account from basic auth to OAuth."
 msgstr "Twitter 账户已从 basic auth 迁移至 OAuth。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:753
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:841
 #, csharp-format
 msgid "Successfully authorized Twitter account \"{0}\" for Smuxi"
 msgstr "Smuxi 成功认证 Twitter 账户 \"{0}\""
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:775
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:864
 #, csharp-format
 msgid "Could not update status - Reason: {0}"
 msgstr "无法更新状态 - 原因: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:784
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:875
 msgid "Cannot send message - no target specified. Use: /msg $nick message"
 msgstr "无法发送信息 - 未指定目标。用法: /msg $昵称 信息"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:797
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:834
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:892
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:987
 #, csharp-format
 msgid "Could not send message - Reason: {0}"
 msgstr "无法发送信息 - 原因: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:821
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:912
+msgid "Other timelines"
+msgstr "其他时间线"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:970
 msgid "Could not send message - the specified user does not exist."
 msgstr "无法发送信息 - 指定用户不存在。"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:910
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1081
+#, csharp-format
+msgid "Search {0}"
+msgstr "搜索 {0}"
+
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1228
+#, csharp-format
 msgid ""
 "An error occurred while fetching the friends timeline from Twitter. Reason: "
-msgstr "从 Twitter 装载好友时间线失败。原因: "
+"{0}"
+msgstr "从 Twitter 装取好友时间线时发生了一个错误。原因: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1017
-msgid "An error occurred while fetching the replies from Twitter. Reason: "
-msgstr "从 Twitter 装载回复失败。原因: "
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1340
+#, csharp-format
+msgid "An error occurred while fetching the replies from Twitter. Reason: {0}"
+msgstr "从 Twitter 装取回复时发生了一个错误。原因: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1113
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1446
+#, csharp-format
 msgid ""
-"An error occurred while fetching direct messages from Twitter. Reason: "
-msgstr "从 Twitter 装载私信失败。原因: "
+"An error occurred while fetching direct messages from Twitter. Reason: {0}"
+msgstr "从 Twitter 装取私信时发生了一个错误。原因: {0}"
 
-#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1457
+#: ../src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs:1817
 msgid "Twitter didn't send a valid response, they're probably overloaded"
 msgstr "Twitter 所发送的响应无效,该网站可能处于过载状态"
diff --git a/po-Engine-Campfire/LINGUAS b/po-Engine-XMPP/LINGUAS
similarity index 71%
copy from po-Engine-Campfire/LINGUAS
copy to po-Engine-XMPP/LINGUAS
index 6c025d2..d11ecfb 100644
--- a/po-Engine-Campfire/LINGUAS
+++ b/po-Engine-XMPP/LINGUAS
@@ -1,8 +1,12 @@
 cs
 da
 de
+es
+fa
 fi
 fr
 pt_BR
 sv
+te
+tr
 zh_CN
diff --git a/po-Engine-XMPP/Makefile.in.in b/po-Engine-XMPP/Makefile.in.in
new file mode 100644
index 0000000..148d4c0
--- /dev/null
+++ b/po-Engine-XMPP/Makefile.in.in
@@ -0,0 +1,218 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper at gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns at gmail.com>
+#
+# This file may be copied and used freely without restrictions.  It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor at redhat.com> to use GETTEXT_PACKAGE
+#   instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob at ximian.com> to install
+#   Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns at gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE_ENGINE_XMPP@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p at .
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+.po.pox:
+	$(MAKE) $(GETTEXT_PACKAGE).pot
+	$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+	$(MSGFMT) -o $@ $<
+
+.po.gmo:
+	file=`echo $* | sed 's,.*/,,'`.gmo \
+	  && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+	sed -f ../intl/po2msg.sed < $< > $*.msg \
+	  && rm -f $@ && gencat $@ $*.msg
+
+
+all: all- at USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+	$(GENPOT)
+
+install: install-data
+install-data: install-data- at USE_NLS@
+install-data-no: all
+install-data-yes: all
+	$(mkdir_p) $(DESTDIR)$(itlocaledir)
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $$dir; \
+	  if test -r $$lang.gmo; then \
+	    $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+	  else \
+	    $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $(srcdir)/$$lang.gmo as" \
+		 "$$dir/$(GETTEXT_PACKAGE).mo"; \
+	  fi; \
+	  if test -r $$lang.gmo.m; then \
+	    $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+	    echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+	  else \
+	    if test -r $(srcdir)/$$lang.gmo.m ; then \
+	      $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+		$$dir/$(GETTEXT_PACKAGE).mo.m; \
+	      echo "installing $(srcdir)/$$lang.gmo.m as" \
+		   "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+	    else \
+	      true; \
+	    fi; \
+	  fi; \
+	done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info tags TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+	done
+
+check: all $(GETTEXT_PACKAGE).pot
+	rm -f missing notexist
+	srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+	if [ -r missing -o -r notexist ]; then \
+	  exit 1; \
+	fi
+
+mostlyclean:
+	rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+	rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+	rm -f Makefile Makefile.in POTFILES stamp-it
+	rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+	rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+	dists="$(DISTFILES)"; \
+	extra_dists="$(EXTRA_DISTFILES)"; \
+	for file in $$extra_dists; do \
+	  test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+	done; \
+	for file in $$dists; do \
+	  test -f $$file || file="$(srcdir)/$$file"; \
+	  ln $$file $(distdir) 2> /dev/null \
+	    || cp -p $$file $(distdir); \
+	done
+
+update-po: Makefile
+	$(MAKE) $(GETTEXT_PACKAGE).pot
+	tmpdir=`pwd`; \
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  echo "$$lang:"; \
+	  result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+	  if $$result; then \
+	    if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	      rm -f $$tmpdir/$$lang.new.po; \
+            else \
+	      if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	        :; \
+	      else \
+	        echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	        rm -f $$tmpdir/$$lang.new.po; \
+	        exit 1; \
+	      fi; \
+	    fi; \
+	  else \
+	    echo "msgmerge for $$lang.gmo failed!"; \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  fi; \
+	done
+
+Makefile POTFILES: stamp-it
+	@if test ! -f $@; then \
+	  rm -f stamp-it; \
+	  $(MAKE) stamp-it; \
+	fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+	       $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po-Engine-XMPP/POTFILES.in b/po-Engine-XMPP/POTFILES.in
new file mode 100644
index 0000000..9b66596
--- /dev/null
+++ b/po-Engine-XMPP/POTFILES.in
@@ -0,0 +1 @@
+src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
diff --git a/po-Server/POTFILES.skip b/po-Engine-XMPP/POTFILES.skip
similarity index 82%
copy from po-Server/POTFILES.skip
copy to po-Engine-XMPP/POTFILES.skip
index 5694bf0..a3e120b 100644
--- a/po-Server/POTFILES.skip
+++ b/po-Engine-XMPP/POTFILES.skip
@@ -4,15 +4,14 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
-src/Engine-XMPP/
 src/Engine-Twitter/
 src/Frontend/
+src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
-src/Frontend-GNOME/
 src/Frontend-STFL/
 src/Frontend-SWF/
 src/Frontend-WPF/
+src/Server/
 lib/
diff --git a/po-Engine-XMPP/cs.po b/po-Engine-XMPP/cs.po
new file mode 100644
index 0000000..53a8405
--- /dev/null
+++ b/po-Engine-XMPP/cs.po
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Ondřej Hošek <ondra.hosek at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "Server byl vypnut"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "Připojil se jiný klient se stejným zdrojem; Vaše připojení bylo ukončeno"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "Ověření přístupových dat se nezdařilo, buďto neexistuje uživatelské jméno anebo je heslo špatně"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "Pokud chcete vytvořit uživatelský účet s tímto jménem a heslem, zadejte /register"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "nepřipojen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "Nemohu najít kontakt {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "Kontakt {0} ma {1} známých zdrojů"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} není známý zdroj"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "JID kontaktu: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "Máte s tímto kontaktem vzájemné předplatné"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "Nejste předplatitelem tohoto kontaktu a tento kontakt není vaším předplatitelem."
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "Jste předplatitelem tohoto kontaktu, ale tento kontakt není vaším"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "Nejste předplatitelem tohoto kontaktu, ale tento kontakt je vaším"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "Neplatný příkaz pro kontakt: {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "Příkazy {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "Pokročilé příkazy {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "Neplatný port: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "Priorita pro „přítomen“ je: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "Priorita pro „nepřítomen“ je: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "Neplatná priorita: {0} (platné priority jsou mezi -128 a 127 včetně)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} je přítomen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} je pryč"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} je déle pryč"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} nechce být vyrušen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} by rád chatoval"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} je offline"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "Automaticky přijímám předplatné Vašeho stavu od uživatele {0}, protože chcete předplatit jeho stav"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} si chce předplatit Váš stav"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} Vám povolil předplacení jeho stavu"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "Automaticky ukončuji uživateli {0} předplacení Vašeho stavu protože on ukončil Vaše předplaceni jeho stavu"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} odmítl/smazal Vaše předplatné jeho stavu"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} ukončil jeho předplatné Vašeho stavu"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "obdržena neplatná chybová zpráva: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "Server uživatele {0}{1} nebyl nalezen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} už užívá Vámi vybraný zdroj"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "Zatím postrádám užitečnou chybovou zprávu pro {0}, {1}, {2}{3}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "Nemáte povolení k přístupu pro {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} dnů"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} hodin"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} minut"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} vteřin"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr "od {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "Nastala neznámá chyba skupinového chatu: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "Nastala neošetřená chyba skupinového chatu: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "Chyba ve skupinovém chatu {0}: {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "{0} Vás zve do {2} protože {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "{0} Vás zve do {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "Přijmout pozvánku (vstoupit do místnosti)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "Opětovné připojování k {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "Opětovné připojování k {0} za {1} vteřin"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "Chyba: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "Ověřen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Používám proxy: {0}:{1}"
diff --git a/po-Engine-XMPP/da.po b/po-Engine-XMPP/da.po
new file mode 100644
index 0000000..b16de44
--- /dev/null
+++ b/po-Engine-XMPP/da.po
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Joe Hansen <joedalton2 at yahoo.dk>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "Serveren har lukke ned"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "En anden klient loggede ind med den samme ressource, du er blevet frakoblet"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "Godkendelse mislykkedes, enten er brugernavnet ikkeeksisterende eller adgangskoden er ugyldig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "hvis du ønsker at oprette en konto med det angivne bruger og den angivne adgangskode så tast /register nu"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "ikke forbundet"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "Kunne ikke finde kontakt {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "Kontakt {0} har {1} kendte ressourcer"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} er ikke en kendt ressource"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "Kontakts Jid: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "Du har et fælles abonnement med denne kontakt"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "Du har intet abonnement med denne kontakt og denne kontakt har ikke abonnement hos dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "Du har abonnement med denne kontakt, men kontakten har ikke abonnement hos dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "Du har ikke abonnement hos denne kontakt, men kontakten har abonnement hos dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "Ugyldig kontaktkommando: {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "{0} kommandoer"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "Avancerede {0} kommandoer"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "Ugyldig port: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "Prioritet for tilgængelig er: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "Prioritet for fraværende er: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "Ugyldig prioritet: {0} (gyldige prioriteter er mellem -128 og 127 inklusive)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} er tilgængelig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} er fraværende"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} er udvidet fraværende"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} ønsker ikke at blive forstyrret"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} ønsker at snakke"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} er frakoblet"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "Tilladte automatisk {0} at abonnere på dig, da du allerede anmoder om at abonnere"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} ønsker at abonnere på dig"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} lod dig abonnere"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "Fjernede automatisk {0}s abonnement til dine tilstedeværelser efter tab af abonnement til deres"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} nægtede/fjernede dit abonnement"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} fjernede sit abonnement fra dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "modtog en forkert udformet fejlbesked: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "{0}{1}s server kunne ikke findes"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} bruger allerede din anmodte ressource"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "Der er i øjeblikket ingen brugbar fejlbesked for {0}, {1}, {2}{3}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "Du har ikke rettighed til at tilgå {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} dage"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} timer"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} minutter"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} sekunder"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr "siden {0}({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "Der opstod en ukendt gruppesnak: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "Der opstod en uhåndteret gruppesnak: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "Fejl i gruppesnak {0}: {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "Du er blevet inviteret til {2} af {0} da {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "Du er blevet inviteret til {1} af {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "Accepter invitation (gå til rum)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "Genforbinder til {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "Genforbinder til {0} om {1} sekunder"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "Fejl: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "Godkendt"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Bruger proxy: {0}:{1}"
diff --git a/po-Engine-XMPP/de.po b/po-Engine-XMPP/de.po
new file mode 100644
index 0000000..58a442c
--- /dev/null
+++ b/po-Engine-XMPP/de.po
@@ -0,0 +1,294 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Bianca Mix <heavydemon at freenet.de>, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 20:34+0000\n"
+"Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "Der Server wurde heruntergefahren"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "Ein anderer Client hat sich mit der gleichen Ressource eingeloggt. Du wurdest getrennt"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "Authentifizierung ist fehlgeschlagen, entweder existiert der Benutzername nicht oder das Password ist ungültig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "Wenn du ein Benutzerkonto mit dem angegebenen Benutzer und Passwort erstellen möchtest, tippe jetzt /register"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "nicht verbunden"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "Konnte den Kontakt nicht finden {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "Kontakt {0} hat {1} bekannte Ressourcen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} ist keine bekannte Ressource"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "Jid des Kontakts: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "Du hast ein gegenseitiges Abonnement mit diesem Kontakt"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "Du hast kein Abonnement bei diesem Kontakt und dieser Kontakt abonniert dich nicht"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "Du abonnierst diesen Kontakt, aber der Kontakt abonniert dich nicht"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "Du abonnierst diesen Kontakt nicht, aber der Kontakt abboniert dich."
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "Ungültiger Kontakt Befehl: {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "{0} Befehle"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "Erweiterte {0} Befehle"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "Ungültiger Port: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "Priorität für verfügbar ist: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "Priorität für abwesend ist: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "Ungültige Priorität: {0} (gültige Prioritäten liegen zwischen -128 und 127 einschließlich)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} ist verfügbar"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} ist abwesend"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} ist länger abwesend"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} möchte nicht gestört werden"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} möchte chatten"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} ist offline"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "Automatisch zugelassen, dass {0} dich abonniert, da du bereits um Abonnement gebeten hast"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} möchte dich abonnieren"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} gestattet, dich zu abonnieren"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "Automatisch {0}s Abonnement zu deinen Präsenzen storniert, nachdem das Abonnement zu seinen verloren ging"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} lehnte ab/entfernte dein Abonnement"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} abboniert dich nicht mehr"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "schlecht strukturierte Fehlernachricht erhalten: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "{0}{1}s Server konnte nicht gefunden werden"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} benutzts bereits die gewünschte Ressource"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "Es gibt momentan keine nützliche Fehlermeldung für {0}, {1}, {2}{3}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "Du bist nicht berechtigt zuzugreifen auf {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} Tage"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} Stunden"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} Minuten"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} Sekunden"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr "seit {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "Ein unbekannter Gruppenchat Fehler ist aufgetreten: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "Ein unbehandelter Gruppenchat Fehler ist aufgetreten: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "Fehler im Gruppenchat {0}: {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "Du wurdest wegen {1} nach {2} von {0} eingeladen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "Du wurdest von {0} nach {1} eingeladen"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "Einladung akzeptieren (Raum betreten)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "Verbinde erneut zu {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "Verbinde erneut zu {0} in {1} Sekunden"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "Fehler: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "Authentifiziert"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Benutze Proxy: {0}:{1}"
diff --git a/po-Engine-XMPP/es.po b/po-Engine-XMPP/es.po
new file mode 100644
index 0000000..9536c08
--- /dev/null
+++ b/po-Engine-XMPP/es.po
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# toote, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "Se cerró el servidor."
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "Otro cliente inició sesión con su mismo recurso, se finalizó esta conexión"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "Falló la autenticación, el usuario no existe o la contraseña es inválida"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "si desea crear una cuenta con el usuario y contraseña especificados, ingrese /register ahora"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "no conectado"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "No se pudo encontrar el contact {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "El contacto {0} tiene {1} recursos conocidos"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} no es un recurso conocido"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "Jid del contacto: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "Posee una subscripción mutua con este contacto"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "No tiene una subscripción con este contacto y este contacto no está subscripto a su cuenta"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "Está subscripto a este contacto, pero el contacto no está subscripto a su cuenta"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "No está subscripto a este contacto pero el contacto está subscripto a su cuenta"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "Orden de contacto inválida: {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "Órdenes {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "Órdenes {0} avanzadas"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "Puerto inválido: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "La prioridad para «Disponible» es: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "La prioridad para «Ausente» es: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "Prioridad inválida: {0} (las prioridades válidas son entre -128 y 127 inclusive)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} está disponible"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} está ausente"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} está ausente de forma prolongada"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} no desea ser molestado"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} desea conversar"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} no está conectado"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "Se permitió automáticamente la subscripción de {0} a su cuenta debido a que había solicitado una subscripción"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} desea subscribirse a su cuenta"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} le permitió subscribirse"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "Se eliminó automáticamente la subscripción de {0} a su cuenta luego de perder su subscripción mutua"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} negó/eliminó su subscripción"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} se desubscribió de su cuenta"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "se recibió un mensaje de error inválido: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "no se encontró el servidor de {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} ya está utilizado el recurso solicitado"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "Actualmente no hay un mensaje de error útil para {0}, {1}, {2}{3}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "No tiene permisos para acceder a {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} días"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} horas"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} minutos"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} segundos"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr "desde {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "Ocurrió un error desconocido en el chat grupal: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "Ocurrió un error sin control en el chat grupal: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "Error en el chat grupal {0}: {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "Ha sido invitado a {2} por {0} debido a {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "Ha sido invitado a {1} por {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "Aceptar invitación (entrar al canal)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "Reconectado a {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "Reconectando a {0} en {1} segundos"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "Error: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "Autenticado"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Utilizando proxy: {0}:{1}"
diff --git a/po-Engine-XMPP/fa.po b/po-Engine-XMPP/fa.po
new file mode 100644
index 0000000..9aa42b4
--- /dev/null
+++ b/po-Engine-XMPP/fa.po
@@ -0,0 +1,292 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr ""
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr ""
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr ""
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr ""
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
diff --git a/po-Engine-XMPP/fi.po b/po-Engine-XMPP/fi.po
new file mode 100644
index 0000000..4d8a5ec
--- /dev/null
+++ b/po-Engine-XMPP/fi.po
@@ -0,0 +1,292 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr ""
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr ""
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr ""
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr ""
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
diff --git a/po-Engine-XMPP/fr.po b/po-Engine-XMPP/fr.po
new file mode 100644
index 0000000..e9d10c3
--- /dev/null
+++ b/po-Engine-XMPP/fr.po
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Clément Bourgeois <moonpyk at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-13 21:58+0000\n"
+"Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "Le serveur a été coupé"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "Un autre client s'est connecté avec le même nom de resource, vous avez été déconnecté"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "Authentification échouée, mot de passe ou nom d'utilisateur incorrect"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "si vous souhaitez créer un compte avec le nom d'utilisateur et le mot de passe spécifié, tapez /register maintenant"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "non connecté"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "Impossible de trouver le contact {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "Le contact {0} a {1} ressource(s) connue(s)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} n'est pas une ressource connue"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "Jid du contact : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "Vous avez un abonnement mutuel avec ce contact"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "Vous n'avez pas d'abonnement avec ce contact ou ce contact n'est pas abonné à vous"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "Vous êtes abonné à ce contact, mais celui-ci ne s'est pas abonné à vous"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "Vous n'êtes pas abonné à ce contact, mais lui est abonné à vous"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "Commande contact invalide : {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "Commandes {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "Commandes avancées {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "Port invalide : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "La priorité pour Disponible est : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "La priorité pour Parti est : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "Priorité {0} invalide (les priorités valides sont comprises entre -128 et 127 inclus)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} est disponible"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} est parti"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} est parti depuis longtemps"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} ne veut pas être dérangé"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} veut discutter"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} est hors ligne"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "{0} a été automatiquement autorisé à s'abonner à vous car vous aviez une demande d'abonnement vers lui en attente"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} souhaite s'abonner à vous"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} vous a autorisé à vous abonner"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "L'abonnement de {0} pour votre présence a été automatiquement supprimé après la perte de l'abonnement vers le sien"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} a refusé/supprimé votre abonnement"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} s'est desabonné de vous"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "message d'erreur mal formé reçu : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "le serveur de {0}{1} n'a pû être trouvé"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} utilise deja le nom de ressource demandé"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "Il n'y a pour l'instant aucun message d'erreur utile pour {0}, {1}, {2}{3}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "Vous n'avez pas la permission d'acceder à {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} jours"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} heures"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} minutes"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} secondes"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr "depuis {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "Une erreur de chat de groupe s'est produite : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "Une erreur de chat de groupe non gérée s'est produite : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "Erreur dans la discussion de groupe {0} : {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "Vous avez été invité sur {2} par {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "Vous avez été invité sur {1} par {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "Accepter l'invitation (rejoindre le canal)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "Reconnexion à {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "Reconnexion à {0} dans {1} seconde(s)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "Erreur : {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "Authentifié"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Utilisation du proxy : {0}:{1}"
diff --git a/po-Engine-XMPP/pt_BR.po b/po-Engine-XMPP/pt_BR.po
new file mode 100644
index 0000000..f1f879d
--- /dev/null
+++ b/po-Engine-XMPP/pt_BR.po
@@ -0,0 +1,292 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr ""
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr ""
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr ""
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr ""
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
diff --git a/po-Engine-XMPP/sv.po b/po-Engine-XMPP/sv.po
new file mode 100644
index 0000000..b32c6bd
--- /dev/null
+++ b/po-Engine-XMPP/sv.po
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Martin Bagge <brother at bsnet.se>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "Servern har stängts av"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "En annan klient loggade in med samma resurs, du har kopplats bort"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "Autentisering misslyckades, antingen finns inte användarnamnet eller så är lösenordet fel"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "om du vill skapa ett konto med den specificerade användaren och lösenordet skriv då /register nu"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "inte ansluten"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "Kunde inte hitta kontakten {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "Kontakten {0} har {1} känd resurs"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} är inte en känd resurs"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "Kontaktens Jid: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "Ni prenumererar på varandra"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "Du har inga prenumerationer med denna kontakt och den prenumererar inte på dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "Du prenumererar på denna kontakt med den prenumererar inte på dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "Du prenumererar inte på denna kontakt men den prenumererar på dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "Felaktigt kontaktkommando: {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "{0}-kommandon"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "Avancerade {0}-kommandon"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "Felaktig port: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "Prioritet för Tillgänglig är: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "Prioritet för Borta är: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "Felaktig prioritet: {0} (korrekta prioriteringar spänner från -128 till och med 127)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} är tillgänglig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} är borta"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} är borta sedan längre tid"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} vill inte bli störd"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} vill chatta"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} är inte ansluten"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "Tillät automatisk {0} att prenumerera på dig eftersom du redan frågar om att prenumerera"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} vill prenumerera på dig"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} tillät dig att prenumerera"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "Tog automatiskt bort prenumerationen för {0} eftersom du nekades kontraprenumeration"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} nekade/tog bort din prenumereration"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} slutade prenumerera på dig"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "fick ett felaktigt formaterat felmeddelande: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "{0}{1} server kunde inte hittas"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} använder redan din begärda resurs"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "Det finns inget meningsfullt felmeddelande för {0}, {1}, {2}{3} "
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "Du har inte tillåtelse att komma åt {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} dagar"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} timmar"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} minuter"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} sekunder"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr "sedan {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "Ett okänt fel i gruppchatten inträffade: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "Ett ohanterbart fel i gruppchatten inträffade: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "Fel i gruppchatt {0}: {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "Du har bjudits in till {2} av {0} med anledning {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "Du har bjudits in av {1} till {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "Acceptera inbjudan (anslut till rum)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "Återansluter till {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "Återansluter till {0} om {1} sekunder"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "Fel: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "Autentiserad"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "Använder proxy: {0}:{1}"
diff --git a/po-Engine-XMPP/te.po b/po-Engine-XMPP/te.po
new file mode 100644
index 0000000..1d9afad
--- /dev/null
+++ b/po-Engine-XMPP/te.po
@@ -0,0 +1,292 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr ""
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr ""
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr ""
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr ""
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
diff --git a/po-Engine-XMPP/tr.po b/po-Engine-XMPP/tr.po
new file mode 100644
index 0000000..af2966b
--- /dev/null
+++ b/po-Engine-XMPP/tr.po
@@ -0,0 +1,292 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-11 16:07+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr ""
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr ""
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr ""
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr ""
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr ""
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr ""
diff --git a/po-Engine-XMPP/zh_CN.po b/po-Engine-XMPP/zh_CN.po
new file mode 100644
index 0000000..c03b665
--- /dev/null
+++ b/po-Engine-XMPP/zh_CN.po
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Dean Lee <xslidian at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:01+0100\n"
+"PO-Revision-Date: 2013-12-13 08:35+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:212
+msgid "The Server has shut down"
+msgstr "服务器已关闭"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:215
+msgid ""
+"Another client logged in with the same resource, you have been disconnected"
+msgstr "相同资源被其他客户端登录占用,您已被断开连接"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:233
+msgid ""
+"Authentication failed, either username does not exist or invalid password"
+msgstr "身份认证失败,用户名不存在或密码无效"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:237
+msgid ""
+"if you want to create an account with the specified user and password, type "
+"/register now"
+msgstr "如果您希望指定用户名与密码创建账号,请输入 /register"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:359
+msgid "not connected"
+msgstr "未连接"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:818
+#, csharp-format
+msgid "Could not find contact {0}"
+msgstr "未找到联系人 {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:824
+#, csharp-format
+msgid "Contact {0} has {1} known resources"
+msgstr "联系人 {0} 有 {1} 个已知资源"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:828
+#, csharp-format
+msgid "{0} is not a known resource"
+msgstr "{0} 不是已知资源"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:836
+#, csharp-format
+msgid "Contact's Jid: {0}"
+msgstr "联系人的 Jid: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:840
+msgid "You have a mutual subscription with this contact"
+msgstr "您与该联系人存在双向订阅关系"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:843
+msgid ""
+"You have no subscription with this contact and this contact is not "
+"subscribed to you"
+msgstr "您未订阅该联系人,该联系人也未订阅您"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:846
+msgid ""
+"You are subscribed to this contact, but the contact is not subcribed to you"
+msgstr "您已订阅该联系人,但该联系人未订阅您"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:849
+msgid ""
+"You are not subscribed to this contact, but the contact is subcribed to you"
+msgstr "您未订阅该联系人,但该联系人订阅了您"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:945
+#, csharp-format
+msgid "Invalid Contact command: {0}"
+msgstr "无效联系人命令: {0}"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of commands below
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:956
+#, csharp-format
+msgid "{0} Commands"
+msgstr "{0} 命令"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:981
+#, csharp-format
+msgid "Advanced {0} Commands"
+msgstr "高级  {0} 命令"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1016
+#, csharp-format
+msgid "Invalid port: {0}"
+msgstr "无效端口: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1051
+#, csharp-format
+msgid "Priority for Available is: {0}"
+msgstr "有空优先级为: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1054
+#, csharp-format
+msgid "Priority for Away is: {0}"
+msgstr "离开优先级为: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1062
+#, csharp-format
+msgid ""
+"Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"
+msgstr "优先级无效: {0} (有效的优先级从 -128 到 127)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1641
+#, csharp-format
+msgid "{0}{1} is available"
+msgstr "{0}{1} 有空"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1645
+#, csharp-format
+msgid "{0}{1} is away"
+msgstr "{0}{1} 离开"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1649
+#, csharp-format
+msgid "{0}{1} is extended away"
+msgstr "{0}{1} 长时间离开"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1653
+#, csharp-format
+msgid "{0}{1} wishes not to be disturbed"
+msgstr "{0}{1} 忙碌"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1657
+#, csharp-format
+msgid "{0}{1} wants to chat"
+msgstr "{0}{1} 想要聊天"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1664
+#, csharp-format
+msgid "{0}{1} is offline"
+msgstr "{0}{1} 离线"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1670
+#, csharp-format
+msgid ""
+"Automatically allowed {0} to subscribe to you, since you are already asking "
+"to subscribe"
+msgstr "由于您已请求订阅,已自动允许 {0} 订阅您"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1674
+#, csharp-format
+msgid "{0}{1} wishes to subscribe to you"
+msgstr "{0}{1} 希望订阅您"
+
+#. you can now see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1682
+#, csharp-format
+msgid "{0}{1} allowed you to subscribe"
+msgstr "{0}{1} 允许您订阅"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1689
+#, csharp-format
+msgid ""
+"Automatically removed {0}'s subscription to your presences after losing the "
+"subscription to theirs"
+msgstr "由于您不再订阅  {0},已自动移除他对您在线状态的订阅"
+
+#. you cannot (anymore?) see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1696
+#, csharp-format
+msgid "{0}{1} denied/removed your subscription"
+msgstr "{0}{1} 拒绝/移除了您的订阅"
+
+#. you might still be able to see their presences
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1701
+#, csharp-format
+msgid "{0}{1} unsubscribed from you"
+msgstr "{0}{1} 已取消订阅您"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1705
+#, csharp-format
+msgid "received a malformed error message: {0}"
+msgstr "收到畸形错误消息: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1712
+#, csharp-format
+msgid "{0}{1}'s server could not be found"
+msgstr "找不到 {0}{1} 的服务器"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1715
+#, csharp-format
+msgid "{0}{1} is already using your requested resource"
+msgstr "{0}{1} 已在使用您请求的资源"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1722
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1744
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1758
+#, csharp-format
+msgid "There is currently no useful error message for {0}, {1}, {2}{3}"
+msgstr "{0}, {1}, {2}{3} 当前没有有用的错误消息"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1735
+#, csharp-format
+msgid "You do not have permission to access {0}{1}"
+msgstr "您无权访问 {0}{1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1785
+#, csharp-format
+msgid "{0} days"
+msgstr "{0} 天"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1791
+#, csharp-format
+msgid "{0} hours"
+msgstr "{0} 小时"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1795
+#, csharp-format
+msgid "{0} minutes"
+msgstr "{0} 分钟"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1798
+#, csharp-format
+msgid "{0} seconds"
+msgstr "{0} 秒"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1810
+#, csharp-format
+msgid " since {0} ({1})"
+msgstr " 从 {0} ({1})"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1888
+#, csharp-format
+msgid "An unknown groupchat error occurred: {0}"
+msgstr "发生未知群聊错误: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1904
+#, csharp-format
+msgid "An unhandled groupchat error occurred: {0}"
+msgstr "发生未处理的群聊错误: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:1906
+#, csharp-format
+msgid "Error in Groupchat {0}: {1}"
+msgstr "群聊 {0} 出错: {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2277
+#, csharp-format
+msgid "You have been invited to {2} by {0} because {1}"
+msgstr "您被 {0} 邀请加入 {2},因为 {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2283
+#, csharp-format
+msgid "You have been invited to {1} by {0}"
+msgstr "您被 {0} 邀请加入 {1}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2304
+msgid "Accept invite (join room)"
+msgstr "接受邀请 (加入房间)"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2471
+#, csharp-format
+msgid "Reconnecting to {0}"
+msgstr "正在重新连接到 {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2485
+#, csharp-format
+msgid "Reconnecting to {0} in {1} seconds"
+msgstr "将在 {1} 秒后重新连接到 {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2515
+#, csharp-format
+msgid "Error: {0}"
+msgstr "错误: {0}"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2527
+msgid "Authenticated"
+msgstr "已通过身份认证"
+
+#: ../src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs:2574
+#, csharp-format
+msgid "Using proxy: {0}:{1}"
+msgstr "使用代理: {0}:{1}"
diff --git a/po-Engine/LINGUAS b/po-Engine/LINGUAS
index 5698b82..17ea155 100644
--- a/po-Engine/LINGUAS
+++ b/po-Engine/LINGUAS
@@ -4,6 +4,7 @@ de
 en_GB
 es
 es_AR
+fa
 fi
 fr
 hr
@@ -15,6 +16,7 @@ pt_BR
 ru
 sk
 sv
+te
 tr
 ur
 zh_CN
diff --git a/po-Engine/POTFILES.in b/po-Engine/POTFILES.in
index ad95f14..079b92e 100644
--- a/po-Engine/POTFILES.in
+++ b/po-Engine/POTFILES.in
@@ -1,5 +1,6 @@
 src/Engine/FrontendManager.cs
 src/Engine/MessageBuffers/Db4oMessageBuffer.cs
+src/Engine/Messages/MessageBuilder.cs
 src/Engine/Protocols/ProtocolManagerBase.cs
 src/Engine/Session.cs
 src/Engine/Config/UserListController.cs
diff --git a/po-Engine/POTFILES.skip b/po-Engine/POTFILES.skip
index e7f337c..0f8bda6 100644
--- a/po-Engine/POTFILES.skip
+++ b/po-Engine/POTFILES.skip
@@ -3,6 +3,7 @@ src/Common/
 src/Frontend/
 src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
@@ -11,8 +12,6 @@ src/Engine/Config/ServerModel.cs
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Server/
diff --git a/po-Engine/cs.po b/po-Engine/cs.po
index 8f1acb4..a2c2d6e 100644
--- a/po-Engine/cs.po
+++ b/po-Engine/cs.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-19 21:23+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-06 14:09+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Žádná připojení k sítí"
 
@@ -38,129 +38,159 @@ msgid ""
 "preserved from now on."
 msgstr "Vaše historie chatů se stala kvůli chybě nedostupnou, ale odteď bude zase uložena."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} píše..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} přestal(a) psát..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} je pryč"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} je online"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} je offline"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Není připojeno k serveru"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Pro příkaz {0} nebyl zadán dostatek parametrů"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Spojen s {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Odpojen od {0}"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "Automatické připojování s {0}..."
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Automatické připojení k {0} selhalo!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Příkazy enginu"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Připojení selhalo!"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Odpojení selhalo - nepodařilo se najít server: {0}"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Opětovné připojení selhalo!"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Nastavení byla načtena"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Nastavení byla uložena"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "Neplatný formát klíč/hodnota."
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "Neplatný klíč konfigurace: '{0}'"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "Nemohu zkonvertovat konfigurační hodnotu: '{0}' na typ: {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "Neplatný parametr příkazu config: použij load, save, get nebo set."
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Neplatný parametr pro network; zadejte list, switch nebo close"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Spojen k sítím:"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Síť"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protokol"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Hostitel"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Port"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "žádné"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Dostupné sítě:"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "Uzavření sítě selhalo - síť nenalezena: {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "Přepnutí sítě selhalo - síť nenalezena: {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Není připojeno k žádné síti"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -169,24 +199,24 @@ msgstr "Nezdařilo se uložení historie chatů. Vaše historie chatů nebude uc
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Připojení selhalo."
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Pro protokol nebyl nalezen žádný správce protokolu: {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Vítejte ve Smuxi"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "Pro zobrazení seznamu dostupných příkazů napište /help."
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -228,14 +258,14 @@ msgstr "Název hostitele serveru obsahuje neplatné znaky (nové řádky)."
 msgid "Server ID '{0}' already exists."
 msgstr "Identifikace serveru '{0}' již existuje."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Nezdařilo se načtení historie chatů. Vaše historie chatů nebude uchována. Příčina: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/da.po b/po-Engine/da.po
index 7878c66..c237e05 100644
--- a/po-Engine/da.po
+++ b/po-Engine/da.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-20 18:49+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-05 19:23+0000\n"
 "Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Ingen netværksforbindelser"
 
@@ -38,129 +38,159 @@ msgid ""
 "preserved from now on."
 msgstr "Din snakkehistorik er ikke længere tilgængelig på grund af en fejl, men den vil blive gemt fremadrettet."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} taster ..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} har stoppet indtastning ..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} er fraværende"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} er frakoblet"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} er tilkoblet"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Ikke forbundet til server"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Ikke nok parametre for kommandoen {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Forbundet til {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Ikke længere forbundet til {0}"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "Automatisk tilslutning til {0} ..."
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Automatisk tilslutning til {0} mislykkedes!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Motorkommandoer"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Tilslutning mislykkedes!"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Afbrydelse fejlede - kunne ikke finde server: {0}"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Gentilslutning mislykkedes!"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Konfiguration genindlæst"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Konfiguration gemt"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "Ugyldigt nøgle/værdi-format."
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "Ugyldig konfigurationsnøgle: »{0}«"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "Kunne ikke konvertere konfigurationsværdi: »{0}« til type: {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "Ugyldig parameter for konfiguration: brug load (indlæs), save (gem), get (hent) eller set (sæt)."
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Ugyldigt parameter for netværk; brug list (vis), switch (skift) eller close (luk)"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Forbundne netværk"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Netværk"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protokol"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Vært"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Port"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "Ingen"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Tilgængelige netværk"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "Lukning af netværk fejlede - kunne ikke finde netværk: {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "Netværksomskifter fejlede - kunne ikke finde netværk: {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Ikke tilsluttet til noget netværk"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -169,24 +199,24 @@ msgstr "Kunne ikke skrive snakkehistorik. Din snakkehistorik vil ikke blive gemt
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Tilslutning mislykkedes."
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Ingen protokolhåndtering fundet til denne protokol: {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Velkommen til Smuxi"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "Tast /help for en liste over tilgængelige kommandoer."
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -228,14 +258,14 @@ msgstr "Serverværtsnavn indeholder ugyldige tegn (nylinje)."
 msgid "Server ID '{0}' already exists."
 msgstr "Server-id »{0}« findes allerede."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Kunne ikke indlæse snakkehistorik. Din snakkehistorik vil ikke blive bevaret. Årsag: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/de.po b/po-Engine/de.po
index 12e6c49..714d145 100644
--- a/po-Engine/de.po
+++ b/po-Engine/de.po
@@ -4,12 +4,13 @@
 # 
 # Translators:
 # Bianca Mix <heavydemon at freenet.de>, 2011-2013
+# Mirco Bauer <meebey at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-20 19:15+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-11 19:33+0000\n"
 "Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +19,7 @@ msgstr ""
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Keine Netzwerkverbindungen"
 
@@ -38,129 +39,159 @@ msgid ""
 "preserved from now on."
 msgstr "Ihr Gesprächsverlauf ist auf Grund eines Fehlers nicht länger verfügbar, er wird aber von fortan vorgehalten."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} tippt..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} hat aufgehört zu tippen..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} ist abwesend"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} ist offline"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} ist online"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Nicht mit dem Server verbunden"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Nicht genügend Parameter für den Befehl: {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Verbunden zu {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Getrennt von {0}"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "Verbinde automatisch zu {0}..."
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Automatische Verbindung zu {0} ist fehlgeschlagen!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Engine Befehle"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Verbindung ist fehlgeschlagen!"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Die Trennung ist fehlgeschlagen - konnte den Server {0} nicht finden"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Wiederverbinden ist fehlgeschlagen!"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Konfiguration wurde erneuert"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Konfiguration wurde gespeichert"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "Ungültiges Schlüssel-/Wertformat"
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "Ungültiger Konfigurationsschlüssel: '{0}'"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "Konfigurationswert konnte nicht umgewandelt werden: '{0}' zu {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "Ungültiger Konfigurationsparameter; benutzen Sie load, save, get oder set"
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Ungültiger Parameter für \"network\", verwenden Sie \"list\", \"switch\" oder \"close\""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Verbundene Netzwerke"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Netzwerk"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protokoll"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Host"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Port"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "Keines"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Verfügbare Netzwerke"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "Schließen des Netzwerks fehlgeschlagen - Netzwerk konnte nicht gefunden werden: {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "Wechseln des Netzwerks fehlgeschlagen - Netzwerk konnte nicht gefunden werden: {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Zu keinem Netzwerk verbunden"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -169,24 +200,24 @@ msgstr "Schreiben des Gesprächverlaufs fehlgeschlagen. Ihr Gesprächsverlauf wi
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Verbindung ist fehlgeschlagen."
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Kein Protokoll-Manager gefunden für das Protokoll: {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Willkommen bei Smuxi"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "Geben Sie /help ein, um eine Liste der verfügbaren Befehle zu erhalten."
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -228,14 +259,14 @@ msgstr "Hostname des Servers enthält unzuläissige Zeichen (neue Zeile)."
 msgid "Server ID '{0}' already exists."
 msgstr "Die Server ID {0} ist bereits vorhanden."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Laden des Gesprächverlaufs fehlgeschlagen. Ihr Gesprächsverlauf wird nicht vorgehalten. Grund: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/es.po b/po-Engine/es.po
index 1d95d0e..f4bba1d 100644
--- a/po-Engine/es.po
+++ b/po-Engine/es.po
@@ -1,136 +1,228 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Juan Miguel Carrero <streinleght at gmail.com>, 2008-2009.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+# toote, 2013
+# Ricardo Hermosilla <ra.hermosillac at gmail.com>, 2012
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.6.2\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2009-08-12 17:04+0100\n"
-"Last-Translator: Juan Miguel Carrero <streinleght at gmail.com>\n"
-"Language-Team: Spanish Spanish Localization <debian-l10n-spanish at lists.debian.org>\n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-10 18:27+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:230
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "No hay conexiones de red"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:161
+#: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:295
+#, csharp-format
+msgid "Optimizing: {0}..."
+msgstr "Optimizando: {0}..."
+
+#: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:313
+#, csharp-format
+msgid "Failed to optimize: {0}. Reason: {1}"
+msgstr "Falló la optimización: {0}. Razón: {1}"
+
+#: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:347
+msgid ""
+"Your chat history is no longer available because of an error but will be "
+"preserved from now on."
+msgstr "Su historial de chat no está disponible debido a un error, pero será preservado desde ahora en adelante."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} está escribiendo..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} dejó de escribir..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} está ausente"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} está desconectado"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} está conectado"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "No conectado al servidor"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:173
-#: ../src/Engine/Session.cs:751
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "Parámetros insuficientes para el comando {0}"
+msgstr "Parámetros insuficientes para la orden {0}"
 
 #: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Conectado a {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:213
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
-msgstr "Desconectado desde {0}"
-
-#: ../src/Engine/Session.cs:154
-msgid "Welcome to Smuxi"
-msgstr "Bienvenido a Smuxi"
-
-#: ../src/Engine/Session.cs:160
-msgid "Type /help to get a list of available commands."
-msgstr "Escribe /help para obtener una lista de comandos disponibles."
+msgstr "Desconectado de {0}"
 
-#: ../src/Engine/Session.cs:163
-msgid "After you have made a connection the list of available commands changes. Use the /help command again to see the extended command list."
-msgstr "Después de efectuar una conexión, la lista de comandos disponibles cambia. Usa el comando /help para ver la lista extendida de comandos."
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "Conectando automáticamente a {0}..."
 
-#: ../src/Engine/Session.cs:216
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
-msgstr "Conexión automática a {0} fallida!"
+msgstr "¡Falló la conexión automática a {0}!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:411
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
-msgstr "Comandos del Motor"
+msgstr "Órdenes del motor"
 
-#: ../src/Engine/Session.cs:514
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
-msgstr "No se puede conectar"
+msgstr "¡Falló la conexión!"
 
-#: ../src/Engine/Session.cs:544
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
-msgstr "Desconexión fallida, no se encuentra el servidor: {0}"
+msgstr "Falló la desconexión, no se encontró el servidor: {0}"
 
-#: ../src/Engine/Session.cs:583
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
-msgstr "La reconexión ha fallado!"
+msgstr "¡Falló la reconexión!"
 
-#: ../src/Engine/Session.cs:602
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
-msgstr "Configuración importada"
+msgstr "Se  recargó la configuración"
 
-#: ../src/Engine/Session.cs:607
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
-msgstr "Configuración guardada"
+msgstr "Se guardó la configuración"
+
+#: ../src/Engine/Session.cs:723
+msgid "Invalid key/value format."
+msgstr "Formato de clave/valor inválido."
+
+#: ../src/Engine/Session.cs:733
+#, csharp-format
+msgid "Invalid config key: '{0}'"
+msgstr "Clave de configuración inválido: «{0}»"
+
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
+#, csharp-format
+msgid "Could not convert config value: '{0}' to type: {1}"
+msgstr "Fallo al convertir el valor de configuración «{0}» al tipo {1}"
 
-#: ../src/Engine/Session.cs:611
-msgid "Invalid parameter for config; use load or save"
-msgstr "Parámetro inválido de configuración; use cargar o guardar"
+#: ../src/Engine/Session.cs:758
+msgid "Invalid parameter for config; use load, save, get or set."
+msgstr "Parámetro inválido para la configuración: utilice load, save, get o set."
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Parámetro inválido para la red; utilice list, switch o close"
 
-#: ../src/Engine/Session.cs:652
-msgid "Networks"
-msgstr "Redes"
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of networks below
+#: ../src/Engine/Session.cs:880
+msgid "Connected Networks"
+msgstr "Redes conectadas"
+
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
+msgid "Network"
+msgstr "Red"
 
-#: ../src/Engine/Session.cs:656
-msgid "Type"
-msgstr "Tipo"
+#: ../src/Engine/Session.cs:886
+msgid "Protocol"
+msgstr "Protocolo"
 
-#: ../src/Engine/Session.cs:657
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Servidor"
 
-#: ../src/Engine/Session.cs:658
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Puerto"
 
-#: ../src/Engine/Session.cs:680
+#. TRANSLATOR: no connected networks
+#. TRANSLATOR: no available networks
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
+msgid "None"
+msgstr "Ninguna"
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of networks below
+#: ../src/Engine/Session.cs:901
+msgid "Available Networks"
+msgstr "Redes disponibles"
+
+#: ../src/Engine/Session.cs:929
 #, csharp-format
-msgid "Network close failed - could not find network with host: {0}"
-msgstr "Fallo en el cierre de la red. No se puede encontrar la red con el dominio: {0}"
+msgid "Network close failed - could not find network: {0}"
+msgstr "Falló el cierre de la red - no se pudo encontrar la red: {0}"
 
-#: ../src/Engine/Session.cs:725
+#: ../src/Engine/Session.cs:973
 #, csharp-format
-msgid "Network switch failed - could not find network with host: {0}"
-msgstr "El cambio de red ha fallado. No se puede encontrar la red con el dominio: {0}"
+msgid "Network switch failed - could not find network: {0}"
+msgstr "Falló el cambio de red - no se pudo encontrar la red: {0}"
 
-#: ../src/Engine/Session.cs:740
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "No conectado a ninguna red"
 
+#: ../src/Engine/Session.cs:1245
+#, csharp-format
+msgid ""
+"Failed to write to chat history. Your chat history will not be preserved. "
+"Reason: {0}"
+msgstr "Falló la escritura de su historial de chat. Su historial no será preservado. Razón: {0}"
+
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1067
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
-msgstr "Ha fallado la conexión."
+msgstr "Falló la conexión."
 
-#: ../src/Engine/Session.cs:1098
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
-msgstr "No existe gestor para el protocolo: {0}"
+msgstr "No se encontró un gestor para el protocolo: {0}"
+
+#: ../src/Engine/Session.cs:1734
+msgid "Welcome to Smuxi"
+msgstr "Bienvenido a Smuxi"
+
+#: ../src/Engine/Session.cs:1741
+msgid "Type /help to get a list of available commands."
+msgstr "Escribe /help para obtener una lista de órdenes disponibles."
+
+#: ../src/Engine/Session.cs:1747
+msgid ""
+"After you have made a connection the list of available commands changes. Go "
+"to the newly opened connection tab and use the /help command again to see "
+"the extended command list."
+msgstr "Después de establecer una conexión, cambia la lista de órdenes disponibles. Diríjase a la pestaña de conexión recién establecida y utilice la orden /help para ver una lista extendida."
 
 #: ../src/Engine/Config/UserListController.cs:117
 msgid "Username must not be empty."
@@ -143,25 +235,40 @@ msgstr "La contraseña no debe estar vacía"
 #: ../src/Engine/Config/UserListController.cs:136
 #, csharp-format
 msgid "User \"{0}\" doesn't exist."
-msgstr "El usuario \"{0}\" no existe."
+msgstr "El usuario «{0}» no existe."
 
 #: ../src/Engine/Config/UserListController.cs:145
 #, csharp-format
 msgid "User \"{0}\" already exists."
-msgstr "El usuario \"{0}\" ya existe."
+msgstr "El usuario «{0}» ya existe."
 
-#: ../src/Engine/Config/ServerListController.cs:131
+#: ../src/Engine/Config/ServerListController.cs:118
+msgid "Network must not be empty."
+msgstr "La red no debe estar vacía."
+
+#: ../src/Engine/Config/ServerListController.cs:138
 msgid "Server hostname must not be empty."
 msgstr "El dominio del servidor no debe estar vacío."
 
-#: ../src/Engine/Config/ServerListController.cs:134
+#: ../src/Engine/Config/ServerListController.cs:141
 msgid "Server hostname contains invalid characters (newline)."
-msgstr "El dominio del servidor contiene caracteres inválidos (nueva línea)"
+msgstr "El dominio del servidor contiene caracteres inválidos (salto de línea)."
+
+#: ../src/Engine/Config/ServerListController.cs:148
+#, csharp-format
+msgid "Server ID '{0}' already exists."
+msgstr "El ID de servidor «{0}» ya existe."
 
-#: ../src/Engine/Config/ServerListController.cs:140
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
-msgid "Server '{0}' already exists."
-msgstr "El servidor '{0}' ya existe."
+msgid ""
+"Failed to load chat history. Your chat history will not be preserved. "
+"Reason: {0}"
+msgstr "Falló la carga del historial de chat. Su historial no será preservado. Razón: {0}"
 
-#~ msgid "Unknown protocol: {0}"
-#~ msgstr "Protocolo desconocido: {0}"
+#: ../src/Engine/Chats/ChatModel.cs:305
+#, csharp-format
+msgid ""
+"Failed to open chat history for writing. Your chat history will not be "
+"preserved. Reason: {0}"
+msgstr "Falló la apertura del historial de chat para escritura. Su historial no será preservado. Razón: {0}"
diff --git a/po-Engine/zh_CN.po b/po-Engine/fa.po
similarity index 51%
copy from po-Engine/zh_CN.po
copy to po-Engine/fa.po
index 6ddfd41..a58f7e1 100644
--- a/po-Engine/zh_CN.po
+++ b/po-Engine/fa.po
@@ -3,241 +3,270 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2011-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-19 17:55+0000\n"
-"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
+"Language: fa\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
-msgstr "无网络连接"
+msgstr ""
 
 #: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:295
 #, csharp-format
 msgid "Optimizing: {0}..."
-msgstr "正在优化: {0}..."
+msgstr ""
 
 #: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:313
 #, csharp-format
 msgid "Failed to optimize: {0}. Reason: {1}"
-msgstr "优化失败: {0}。原因: {1}"
+msgstr ""
 
 #: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:347
 msgid ""
 "Your chat history is no longer available because of an error but will be "
 "preserved from now on."
-msgstr "由于发生错误,您的聊天历史不再可用;但今后的聊天历史将会保留。"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr ""
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
-msgstr "未连接到服务器"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "{0} 命令参数不足"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
-msgstr "已连接到 {0}"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
-msgstr "已从 {0} 断开连接"
+msgstr ""
+
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr ""
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
-msgstr "自动连接 {0} 失败!"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
-msgstr "引擎命令"
+msgstr ""
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
-msgstr "连接失败!"
+msgstr ""
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
-msgstr "连接断开失败 - 找不到服务器: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
-msgstr "重新连接失败!"
+msgstr ""
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
-msgstr "配置已重新载入"
+msgstr ""
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
-msgstr "配置已保存"
+msgstr ""
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
-msgstr "键/值格式无效。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
-msgstr "配置键无效: '{0}'"
+msgstr ""
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
-msgstr "无法转换配置键: '{0}' 目标类型: {1}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
-msgstr "config 参数无效; 请使用 load、save、get 或 set。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
-msgstr "network 的参数无效; 使用 list、switch 或 close"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
-msgstr "已连接网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
-msgstr "网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
-msgstr "协议"
+msgstr ""
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
-msgstr "主机"
+msgstr ""
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
-msgstr "端口"
+msgstr ""
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
-msgstr "无"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
-msgstr "可用网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
-msgstr "网络关闭失败——无法找到网络: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
-msgstr "网络切换失败——无法找到网络: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
-msgstr "未连接到任何网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
 "Reason: {0}"
-msgstr "无法写入聊天历史。您的聊天历史将不会保存。原因: {0}"
+msgstr ""
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
-msgstr "连接失败。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
-msgstr "未找到该协议的协议管理器: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
-msgstr "欢迎来到 Smuxi"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
-msgstr "输入 /help 获取可用命令列表。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
 "the extended command list."
-msgstr "连接后可用命令列表将有所变化。请访问新打开的连接页面,再次使用 /help 命令查看扩展后的命令列表。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:117
 msgid "Username must not be empty."
-msgstr "用户名不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:127
 msgid "Password must not be empty."
-msgstr "密码不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:136
 #, csharp-format
 msgid "User \"{0}\" doesn't exist."
-msgstr "用户 \"{0}\" 不存在。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:145
 #, csharp-format
 msgid "User \"{0}\" already exists."
-msgstr "用户名 \"{0}\" 已存在。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:118
 msgid "Network must not be empty."
-msgstr "网络不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:138
 msgid "Server hostname must not be empty."
-msgstr "服务器主机名不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:141
 msgid "Server hostname contains invalid characters (newline)."
-msgstr "服务器主机名包含无效字符 (换行)。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:148
 #, csharp-format
 msgid "Server ID '{0}' already exists."
-msgstr "服务器 ID '{0}' 已存在。"
+msgstr ""
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
-msgstr "无法加载聊天历史。您的聊天历史将不会保留。原因: {0}"
+msgstr ""
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
 "preserved. Reason: {0}"
-msgstr "聊天历史无法打开写入。您的聊天历史将不会保留。原因: {0}"
+msgstr ""
diff --git a/po-Engine/fi.po b/po-Engine/fi.po
index 9aca788..6b2ae20 100644
--- a/po-Engine/fi.po
+++ b/po-Engine/fi.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-21 10:40+0000\n"
-"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Ei verkkoyhteyttä"
 
@@ -38,129 +38,159 @@ msgid ""
 "preserved from now on."
 msgstr "Viestihistoriasi ei ole saatavilla virheen vuoksi mutta se tallennetaan tästä eteenpäin."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr ""
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Yhteys palvelimeen katkaistu"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Ei tarpeeksi parametrejä komennolle {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Yhdistetty kohteeseen {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Yhteys katkaistu kohteesta {0}"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Automaattinen yhdistys palvelimeen {0} epäonnistui!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Moottorin komennot"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Yhdistäminen epäonnistui!"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Yhteyden katkaisu epäonnistui - palvelinta {0} ei löydetty"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Uudelleenyhdistäminen epäonnistui!"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Asetukset ladattu uudelleen"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Asetukset tallennettu"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "Epäkelpo avain/arvo -muoto."
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "Epäkelpo asetusavain: '{0}'"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "Ei voitu kääntää asetusavainarvoa: '{0}' tyyppiin: {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "Epäkelpo parametri asetuksille; käytä komentoja load, save get tai set."
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Epäkelpo parametri network:lle, käytä komentoja list, switch tai close"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Yhdistetyt Verkot"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Verkko"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protokolla"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Isäntä"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Portti"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "Ei mitään"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Saatavilla olevat verkot"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "Verkon sulkeminen epäonnistui - verkkoa ei löytynyt: {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "Verkon vaihtaminen epäonnistui - verkkoa ei löytynyt: {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Ei yhdistettynä yhteenkään verkkoon"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -169,24 +199,24 @@ msgstr "Chat-historian tallennus epäonnistui. Chat-historiaasi ei säilötä. S
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Yhdistäminen epäonnistui."
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Protokollan hallintaa ei löydetty protokollalle {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Tervetuloa Smuxiin"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "Kirjoita /help saadaksesi listan käytössäolevista komennoista."
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -228,14 +258,14 @@ msgstr "Palvelimen isäntänimi sisältää epäkelpoja merkkejä (rivinvaihto).
 msgid "Server ID '{0}' already exists."
 msgstr "Palvelin ID:llä '{0}' on jo olemassa."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Chat-historian lataaminen epäonnistui. Chat-historiaasi ei tallenneta. Syy: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/fr.po b/po-Engine/fr.po
index 199def1..b826600 100644
--- a/po-Engine/fr.po
+++ b/po-Engine/fr.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-19 12:39+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-13 21:23+0000\n"
 "Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Aucune connexion réseau"
 
@@ -38,129 +38,159 @@ msgid ""
 "preserved from now on."
 msgstr "Votre historique de conversation n'est plus disponible en raison d'une erreur mais il sera préservé à partir de maintenant."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} est en train de taper..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} a arrêté de taper.."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} est parti"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} est hors ligne"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} est en ligne"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Pas de connexion au serveur"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Pas assez d'arguments pour la commande {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Connecté à {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Deconnecté de {0}"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "Connexion automatique à {0}..."
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Connexion automatique à {0} impossible !"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Commandes du moteur"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Connexion impossible !"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Déconnexion impossible : serveur \"{0}\" introuvable"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Reconnexion impossible !"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Configuration rechargée"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Configuration sauvegardée"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "Format invalide de paire clé/valeur."
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "Clé de configuration incorrecte : '{0}'"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "Impossible de convertir la valeur de configuration '{0}' vers le type : {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "Paramètre invalide pour la configuration, utilisez \"save\", \"get\" ou \"save\"."
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Paramètre invalide pour le réseau ; utilisez list, switch ou close"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Réseaux connectés"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Réseau"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protocole"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Hôte"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Port"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "Aucun"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Réseaux disponibles"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "Impossible de fermer le réseau - impossible de trouver le réseau : {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "Impossible de changer de réseau - impossible de trouver le réseau : {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Aucun réseau connecté"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -169,24 +199,24 @@ msgstr "Impossible d'écrire votre historique de discussion, celui-ci ne sera pa
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Connexion impossible."
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Aucun gestionnaire de protocole trouvé pour le protocole : {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Bienvenue dans Smuxi"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "Tapez /help pour obtenir la liste des commandes disponibles."
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -228,14 +258,14 @@ msgstr "Le nom d'hôte contient des caractères invalides."
 msgid "Server ID '{0}' already exists."
 msgstr "L'identifiant de serveur \"{0}\" existe déjà."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Impossible de charger votre historique de discussion, celui-ci ne sera pas préservé. Raison : {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/pt_BR.po b/po-Engine/pt_BR.po
index 0723923..c077dc7 100644
--- a/po-Engine/pt_BR.po
+++ b/po-Engine/pt_BR.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:13+0200\n"
-"PO-Revision-Date: 2013-07-08 17:04+0000\n"
-"Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Sem conexão de rede"
 
@@ -38,115 +38,159 @@ msgid ""
 "preserved from now on."
 msgstr "Seu histórico de mensagens não está disponível por causa de um erro, mas será preservado à partir de agora."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr ""
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Não conectado ao servidor"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Parâmetros insfucientes para o comando {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Conectado a {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Desconectado de {0}"
 
-#: ../src/Engine/Session.cs:217
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr ""
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Conexão automática a {0} falhou!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:415
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Comandos principais"
 
-#: ../src/Engine/Session.cs:540
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Conexão falhou!"
 
-#: ../src/Engine/Session.cs:563
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Desconexão falhou - Não foi possível encontrar servidor: {0}"
 
-#: ../src/Engine/Session.cs:603
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Re-conectar falhou!"
 
-#: ../src/Engine/Session.cs:625
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Configuração reiniciada"
 
-#: ../src/Engine/Session.cs:629
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Configuração salva"
 
-#: ../src/Engine/Session.cs:633
-msgid "Invalid parameter for config; use load or save"
-msgstr "Parâmetro invalido para config: Use load ou save"
+#: ../src/Engine/Session.cs:723
+msgid "Invalid key/value format."
+msgstr ""
+
+#: ../src/Engine/Session.cs:733
+#, csharp-format
+msgid "Invalid config key: '{0}'"
+msgstr ""
+
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
+#, csharp-format
+msgid "Could not convert config value: '{0}' to type: {1}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:758
+msgid "Invalid parameter for config; use load, save, get or set."
+msgstr ""
+
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Parâmetro invalido para rede: use list, switch ou close"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:733
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Redes Conectadas"
 
-#: ../src/Engine/Session.cs:738 ../src/Engine/Session.cs:762
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Rede"
 
-#: ../src/Engine/Session.cs:739
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: ../src/Engine/Session.cs:740
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Servidor"
 
-#: ../src/Engine/Session.cs:741
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Porta"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:747 ../src/Engine/Session.cs:768
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "Nenhuma"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:754
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Redes disponíveis"
 
-#: ../src/Engine/Session.cs:783
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "Desconexão falhou - Não foi possível encontrar servidor: {0}"
 
-#: ../src/Engine/Session.cs:821
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "Troca de rede falhou - não foi possível encontrar rede: {0}"
 
-#: ../src/Engine/Session.cs:839
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Não conectado em nenhum servidor"
 
-#: ../src/Engine/Session.cs:1093
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -155,24 +199,24 @@ msgstr "Falha ao escrever o histórico de mensagens. Seu histórico de mensagens
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1266
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Conexão falhou!"
 
-#: ../src/Engine/Session.cs:1297
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Gerenciador de protocolo não encontrado para o protocolo: {0}"
 
-#: ../src/Engine/Session.cs:1529
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Bem vindo ao Smuxi"
 
-#: ../src/Engine/Session.cs:1536
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "Digite /help para pegar lista de comandos disponíveis."
 
-#: ../src/Engine/Session.cs:1542
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -214,14 +258,14 @@ msgstr "Nome do servidor contem caracteres inválidos (nova linha)."
 msgid "Server ID '{0}' already exists."
 msgstr "Servidor de ID '{0}' já existe."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Falha ao carregar histórico de mensagens. Seu histórico de mensagens não será preservados. Razão: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:298
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/sv.po b/po-Engine/sv.po
index 383016b..f6d703a 100644
--- a/po-Engine/sv.po
+++ b/po-Engine/sv.po
@@ -5,14 +5,14 @@
 # Translators:
 # flugsio <flugsio at gmail.com>, 2013
 # flugsio <flugsio at gmail.com>, 2011, 2012
-# Martin Bagge <brother at bsnet.se>, 2012
+# Martin Bagge <brother at bsnet.se>, 2012-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-19 13:39+0000\n"
-"Last-Translator: flugsio <flugsio at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-10 16:55+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +20,7 @@ msgstr ""
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "Inga nätverksanslutningar"
 
@@ -40,129 +40,159 @@ msgid ""
 "preserved from now on."
 msgstr "Din chatthistorik är inte längre tillgänglig på grund av ett fel, men kommer att bibehållas från och med nu."
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} skriver..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} har slutat skriva..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} är borta"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} är inte ansluten"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} är ansluten"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Inte ansluten till server"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Inte tillräckligt med parametrar för kommandot {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "Ansluten till {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "Frånkopplad från {0}"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "Ansluter automatiskt till {0}..."
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "Automatisk anslutning till {0} misslyckades!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "Kommandon för motorn"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "Anslutning misslyckades!"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "Nedkoppling misslyckades - kunde inte hitta servern: {0}"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "Återanslutning misslyckades!"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "Inställningarna laddades"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "Inställningarna sparades"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "Ogiltigt nykel/värde format."
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "Ogiltig konfigurationsnyckel: '{0}'"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "Kunde inte konvertera konfigurationsvärdet: '{0}' till typen: {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "Ogiltig parameter för inställningar; använd load, save, get eller set."
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "Ogiltig parameter för nätverk; använd list, switch eller close"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "Anslutna nätverk"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "Nätverk"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "Protokoll"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "Värd"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "Port"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "Ingen"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "Tillgängliga nätverk"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
-msgstr "Stängning av nätverk misslyckades - kunde inte hitta nätverket med värdnamn: {0}"
+msgstr "Stängning av nätverk misslyckades - kunde inte hitta nätverket: {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
-msgstr "Byte av nätverk misslyckades - kunde inte hitta nätverket med värdnamn: {0}"
+msgstr "Byte av nätverk misslyckades - kunde inte hitta nätverket: {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "Inte ansluten till något nätverk"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -171,24 +201,24 @@ msgstr "Kunde inte spara chatthistorik. Din chatthistorik kommer inte att bibeh
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "Anslutning misslyckades."
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "Ingen protokollshanterare funnen för protokollet: {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "Välkommen till Smuxi"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
-msgstr "Skriv /help för att få en lista med tillgängliga kommandon."
+msgstr "Skriv /help för att visa en lista med tillgängliga kommandon."
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -230,14 +260,14 @@ msgstr "Serverns värdnamn innehåller ogiltiga tecken (ny rad)."
 msgid "Server ID '{0}' already exists."
 msgstr "Server ID '{0}' finns redan."
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "Kunde inte läsa in chatthistoriken. Din chatthistorik kommer inte att sparas. Anledning: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Engine/zh_CN.po b/po-Engine/te.po
similarity index 50%
copy from po-Engine/zh_CN.po
copy to po-Engine/te.po
index 6ddfd41..f64fd26 100644
--- a/po-Engine/zh_CN.po
+++ b/po-Engine/te.po
@@ -3,241 +3,270 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2011-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-19 17:55+0000\n"
-"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
-msgstr "无网络连接"
+msgstr ""
 
 #: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:295
 #, csharp-format
 msgid "Optimizing: {0}..."
-msgstr "正在优化: {0}..."
+msgstr ""
 
 #: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:313
 #, csharp-format
 msgid "Failed to optimize: {0}. Reason: {1}"
-msgstr "优化失败: {0}。原因: {1}"
+msgstr ""
 
 #: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:347
 msgid ""
 "Your chat history is no longer available because of an error but will be "
 "preserved from now on."
-msgstr "由于发生错误,您的聊天历史不再可用;但今后的聊天历史将会保留。"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr ""
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
-msgstr "未连接到服务器"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "{0} 命令参数不足"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
-msgstr "已连接到 {0}"
+msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
-msgstr "已从 {0} 断开连接"
+msgstr ""
+
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr ""
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
-msgstr "自动连接 {0} 失败!"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
-msgstr "引擎命令"
+msgstr ""
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
-msgstr "连接失败!"
+msgstr ""
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
-msgstr "连接断开失败 - 找不到服务器: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
-msgstr "重新连接失败!"
+msgstr ""
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
-msgstr "配置已重新载入"
+msgstr ""
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
-msgstr "配置已保存"
+msgstr ""
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
-msgstr "键/值格式无效。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
-msgstr "配置键无效: '{0}'"
+msgstr ""
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
-msgstr "无法转换配置键: '{0}' 目标类型: {1}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
-msgstr "config 参数无效; 请使用 load、save、get 或 set。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
-msgstr "network 的参数无效; 使用 list、switch 或 close"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
-msgstr "已连接网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
-msgstr "网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
-msgstr "协议"
+msgstr ""
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
-msgstr "主机"
+msgstr ""
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
-msgstr "端口"
+msgstr ""
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
-msgstr "无"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
-msgstr "可用网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
-msgstr "网络关闭失败——无法找到网络: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
-msgstr "网络切换失败——无法找到网络: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
-msgstr "未连接到任何网络"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
 "Reason: {0}"
-msgstr "无法写入聊天历史。您的聊天历史将不会保存。原因: {0}"
+msgstr ""
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
-msgstr "连接失败。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
-msgstr "未找到该协议的协议管理器: {0}"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
-msgstr "欢迎来到 Smuxi"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
-msgstr "输入 /help 获取可用命令列表。"
+msgstr ""
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
 "the extended command list."
-msgstr "连接后可用命令列表将有所变化。请访问新打开的连接页面,再次使用 /help 命令查看扩展后的命令列表。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:117
 msgid "Username must not be empty."
-msgstr "用户名不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:127
 msgid "Password must not be empty."
-msgstr "密码不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:136
 #, csharp-format
 msgid "User \"{0}\" doesn't exist."
-msgstr "用户 \"{0}\" 不存在。"
+msgstr ""
 
 #: ../src/Engine/Config/UserListController.cs:145
 #, csharp-format
 msgid "User \"{0}\" already exists."
-msgstr "用户名 \"{0}\" 已存在。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:118
 msgid "Network must not be empty."
-msgstr "网络不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:138
 msgid "Server hostname must not be empty."
-msgstr "服务器主机名不能为空。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:141
 msgid "Server hostname contains invalid characters (newline)."
-msgstr "服务器主机名包含无效字符 (换行)。"
+msgstr ""
 
 #: ../src/Engine/Config/ServerListController.cs:148
 #, csharp-format
 msgid "Server ID '{0}' already exists."
-msgstr "服务器 ID '{0}' 已存在。"
+msgstr ""
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
-msgstr "无法加载聊天历史。您的聊天历史将不会保留。原因: {0}"
+msgstr ""
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
 "preserved. Reason: {0}"
-msgstr "聊天历史无法打开写入。您的聊天历史将不会保留。原因: {0}"
+msgstr ""
diff --git a/po-Engine/tr.po b/po-Engine/tr.po
index afded66..4501c60 100644
--- a/po-Engine/tr.po
+++ b/po-Engine/tr.po
@@ -3,31 +3,72 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Umut Albayrak <umutmuh at gmail.com>, 2011.
+# Umut Albayrak <umutmuh at gmail.com>, 2011
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2011-03-22 15:43+0000\n"
-"Last-Translator: Umut Albayrak <umutmuh at gmail.com>\n"
-"Language-Team: Turkish (http://www.transifex.net/projects/p/smuxi/team/tr/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-05 18:50+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Engine/FrontendManager.cs:230
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:161
+#: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:295
+#, csharp-format
+msgid "Optimizing: {0}..."
+msgstr ""
+
+#: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:313
+#, csharp-format
+msgid "Failed to optimize: {0}. Reason: {1}"
+msgstr ""
+
+#: ../src/Engine/MessageBuffers/Db4oMessageBuffer.cs:347
+msgid ""
+"Your chat history is no longer available because of an error but will be "
+"preserved from now on."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr ""
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr ""
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "Sunucuya bağlanılamadı"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:173
-#: ../src/Engine/Session.cs:751
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr ""
@@ -37,106 +78,151 @@ msgstr ""
 msgid "Connected to {0}"
 msgstr ""
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:213
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr ""
 
-#: ../src/Engine/Session.cs:154
-msgid "Welcome to Smuxi"
-msgstr "Smuxi'ye hoşgeldiniz"
-
-#: ../src/Engine/Session.cs:160
-msgid "Type /help to get a list of available commands."
-msgstr "Yazılabilecek komutlar için /help yazın"
-
-#: ../src/Engine/Session.cs:163
-msgid ""
-"After you have made a connection the list of available commands changes. Use"
-" the /help command again to see the extended command list."
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
 msgstr ""
 
-#: ../src/Engine/Session.cs:216
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:411
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr ""
 
-#: ../src/Engine/Session.cs:514
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr ""
 
-#: ../src/Engine/Session.cs:544
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr ""
 
-#: ../src/Engine/Session.cs:583
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr ""
 
-#: ../src/Engine/Session.cs:602
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr ""
 
-#: ../src/Engine/Session.cs:607
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr ""
 
-#: ../src/Engine/Session.cs:611
-msgid "Invalid parameter for config; use load or save"
+#: ../src/Engine/Session.cs:723
+msgid "Invalid key/value format."
+msgstr ""
+
+#: ../src/Engine/Session.cs:733
+#, csharp-format
+msgid "Invalid config key: '{0}'"
 msgstr ""
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
+#, csharp-format
+msgid "Could not convert config value: '{0}' to type: {1}"
+msgstr ""
+
+#: ../src/Engine/Session.cs:758
+msgid "Invalid parameter for config; use load, save, get or set."
+msgstr ""
+
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr ""
 
-#: ../src/Engine/Session.cs:652
-msgid "Networks"
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of networks below
+#: ../src/Engine/Session.cs:880
+msgid "Connected Networks"
+msgstr ""
+
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
+msgid "Network"
 msgstr ""
 
-#: ../src/Engine/Session.cs:656
-msgid "Type"
+#: ../src/Engine/Session.cs:886
+msgid "Protocol"
 msgstr ""
 
-#: ../src/Engine/Session.cs:657
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr ""
 
-#: ../src/Engine/Session.cs:658
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr ""
 
-#: ../src/Engine/Session.cs:680
+#. TRANSLATOR: no connected networks
+#. TRANSLATOR: no available networks
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
+msgid "None"
+msgstr ""
+
+#. TRANSLATOR: this line is used as a label / category for a
+#. list of networks below
+#: ../src/Engine/Session.cs:901
+msgid "Available Networks"
+msgstr ""
+
+#: ../src/Engine/Session.cs:929
 #, csharp-format
-msgid "Network close failed - could not find network with host: {0}"
+msgid "Network close failed - could not find network: {0}"
 msgstr ""
 
-#: ../src/Engine/Session.cs:725
+#: ../src/Engine/Session.cs:973
 #, csharp-format
-msgid "Network switch failed - could not find network with host: {0}"
+msgid "Network switch failed - could not find network: {0}"
 msgstr ""
 
-#: ../src/Engine/Session.cs:740
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr ""
 
+#: ../src/Engine/Session.cs:1245
+#, csharp-format
+msgid ""
+"Failed to write to chat history. Your chat history will not be preserved. "
+"Reason: {0}"
+msgstr ""
+
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1067
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr ""
 
-#: ../src/Engine/Session.cs:1098
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr ""
 
+#: ../src/Engine/Session.cs:1734
+msgid "Welcome to Smuxi"
+msgstr "Smuxi'ye hoşgeldiniz"
+
+#: ../src/Engine/Session.cs:1741
+msgid "Type /help to get a list of available commands."
+msgstr "Yazılabilecek komutlar için /help yazın"
+
+#: ../src/Engine/Session.cs:1747
+msgid ""
+"After you have made a connection the list of available commands changes. Go "
+"to the newly opened connection tab and use the /help command again to see "
+"the extended command list."
+msgstr ""
+
 #: ../src/Engine/Config/UserListController.cs:117
 msgid "Username must not be empty."
 msgstr ""
@@ -155,17 +241,33 @@ msgstr ""
 msgid "User \"{0}\" already exists."
 msgstr ""
 
-#: ../src/Engine/Config/ServerListController.cs:131
+#: ../src/Engine/Config/ServerListController.cs:118
+msgid "Network must not be empty."
+msgstr ""
+
+#: ../src/Engine/Config/ServerListController.cs:138
 msgid "Server hostname must not be empty."
 msgstr ""
 
-#: ../src/Engine/Config/ServerListController.cs:134
+#: ../src/Engine/Config/ServerListController.cs:141
 msgid "Server hostname contains invalid characters (newline)."
 msgstr ""
 
-#: ../src/Engine/Config/ServerListController.cs:140
+#: ../src/Engine/Config/ServerListController.cs:148
 #, csharp-format
-msgid "Server '{0}' already exists."
+msgid "Server ID '{0}' already exists."
 msgstr ""
 
+#: ../src/Engine/Chats/ChatModel.cs:108
+#, csharp-format
+msgid ""
+"Failed to load chat history. Your chat history will not be preserved. "
+"Reason: {0}"
+msgstr ""
 
+#: ../src/Engine/Chats/ChatModel.cs:305
+#, csharp-format
+msgid ""
+"Failed to open chat history for writing. Your chat history will not be "
+"preserved. Reason: {0}"
+msgstr ""
diff --git a/po-Engine/zh_CN.po b/po-Engine/zh_CN.po
index 6ddfd41..ec85989 100644
--- a/po-Engine/zh_CN.po
+++ b/po-Engine/zh_CN.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:06+0200\n"
-"PO-Revision-Date: 2013-08-19 17:55+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 16:58+0100\n"
+"PO-Revision-Date: 2013-12-13 08:15+0000\n"
 "Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Engine/FrontendManager.cs:233
+#: ../src/Engine/FrontendManager.cs:218
 msgid "No network connections"
 msgstr "无网络连接"
 
@@ -38,129 +38,159 @@ msgid ""
 "preserved from now on."
 msgstr "由于发生错误,您的聊天历史不再可用;但今后的聊天历史将会保留。"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:166
+#: ../src/Engine/Messages/MessageBuilder.cs:782
+#, csharp-format
+msgid "{0} is typing..."
+msgstr "{0} 正在输入..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:788
+#, csharp-format
+msgid "{0} has stopped typing..."
+msgstr "{0} 已停止输入..."
+
+#: ../src/Engine/Messages/MessageBuilder.cs:831
+#, csharp-format
+msgid "{0} is away"
+msgstr "{0} 处于离开状态"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:837
+#, csharp-format
+msgid "{0} is offline"
+msgstr "{0} 已下线"
+
+#: ../src/Engine/Messages/MessageBuilder.cs:843
+#, csharp-format
+msgid "{0} is online"
+msgstr "{0} 已上线"
+
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:170
 msgid "Not connected to server"
 msgstr "未连接到服务器"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:174
-#: ../src/Engine/Session.cs:951
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:178
+#: ../src/Engine/Session.cs:998
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "{0} 命令参数不足"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:185
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:189
 #, csharp-format
 msgid "Connected to {0}"
 msgstr "已连接到 {0}"
 
-#: ../src/Engine/Protocols/ProtocolManagerBase.cs:203
+#: ../src/Engine/Protocols/ProtocolManagerBase.cs:219
 #, csharp-format
 msgid "Disconnected from {0}"
 msgstr "已从 {0} 断开连接"
 
-#: ../src/Engine/Session.cs:224
+#: ../src/Engine/Session.cs:237
+#, csharp-format
+msgid "Automatically connecting to {0}..."
+msgstr "正在自动连接到 {0}..."
+
+#: ../src/Engine/Session.cs:268
 #, csharp-format
 msgid "Automatic connect to {0} failed!"
 msgstr "自动连接 {0} 失败!"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Engine/Session.cs:426
+#: ../src/Engine/Session.cs:471
 msgid "Engine Commands"
 msgstr "引擎命令"
 
-#: ../src/Engine/Session.cs:552
+#: ../src/Engine/Session.cs:599
 msgid "Connect failed!"
 msgstr "连接失败!"
 
-#: ../src/Engine/Session.cs:575
+#: ../src/Engine/Session.cs:622
 #, csharp-format
 msgid "Disconnect failed - could not find server: {0}"
 msgstr "连接断开失败 - 找不到服务器: {0}"
 
-#: ../src/Engine/Session.cs:615
+#: ../src/Engine/Session.cs:664
 msgid "Reconnect failed!"
 msgstr "重新连接失败!"
 
-#: ../src/Engine/Session.cs:641
+#: ../src/Engine/Session.cs:688
 msgid "Configuration reloaded"
 msgstr "配置已重新载入"
 
-#: ../src/Engine/Session.cs:645
+#: ../src/Engine/Session.cs:692
 msgid "Configuration saved"
 msgstr "配置已保存"
 
-#: ../src/Engine/Session.cs:676
+#: ../src/Engine/Session.cs:723
 msgid "Invalid key/value format."
 msgstr "键/值格式无效。"
 
-#: ../src/Engine/Session.cs:686
+#: ../src/Engine/Session.cs:733
 #, csharp-format
 msgid "Invalid config key: '{0}'"
 msgstr "配置键无效: '{0}'"
 
-#: ../src/Engine/Session.cs:696 ../src/Engine/Session.cs:702
+#: ../src/Engine/Session.cs:743 ../src/Engine/Session.cs:749
 #, csharp-format
 msgid "Could not convert config value: '{0}' to type: {1}"
 msgstr "无法转换配置键: '{0}' 目标类型: {1}"
 
-#: ../src/Engine/Session.cs:711
+#: ../src/Engine/Session.cs:758
 msgid "Invalid parameter for config; use load, save, get or set."
 msgstr "config 参数无效; 请使用 load、save、get 或 set。"
 
-#: ../src/Engine/Session.cs:807
+#: ../src/Engine/Session.cs:850
 msgid "Invalid parameter for network; use list, switch, or close"
 msgstr "network 的参数无效; 使用 list、switch 或 close"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:838
+#: ../src/Engine/Session.cs:880
 msgid "Connected Networks"
 msgstr "已连接网络"
 
-#: ../src/Engine/Session.cs:843 ../src/Engine/Session.cs:867
+#: ../src/Engine/Session.cs:885 ../src/Engine/Session.cs:909
 msgid "Network"
 msgstr "网络"
 
-#: ../src/Engine/Session.cs:844
+#: ../src/Engine/Session.cs:886
 msgid "Protocol"
 msgstr "协议"
 
-#: ../src/Engine/Session.cs:845
+#: ../src/Engine/Session.cs:887
 msgid "Host"
 msgstr "主机"
 
-#: ../src/Engine/Session.cs:846
+#: ../src/Engine/Session.cs:888
 msgid "Port"
 msgstr "端口"
 
 #. TRANSLATOR: no connected networks
 #. TRANSLATOR: no available networks
-#: ../src/Engine/Session.cs:852 ../src/Engine/Session.cs:873
+#: ../src/Engine/Session.cs:894 ../src/Engine/Session.cs:915
 msgid "None"
 msgstr "无"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of networks below
-#: ../src/Engine/Session.cs:859
+#: ../src/Engine/Session.cs:901
 msgid "Available Networks"
 msgstr "可用网络"
 
-#: ../src/Engine/Session.cs:888
+#: ../src/Engine/Session.cs:929
 #, csharp-format
 msgid "Network close failed - could not find network: {0}"
 msgstr "网络关闭失败——无法找到网络: {0}"
 
-#: ../src/Engine/Session.cs:926
+#: ../src/Engine/Session.cs:973
 #, csharp-format
 msgid "Network switch failed - could not find network: {0}"
 msgstr "网络切换失败——无法找到网络: {0}"
 
-#: ../src/Engine/Session.cs:944
+#: ../src/Engine/Session.cs:991
 msgid "Not connected to any network"
 msgstr "未连接到任何网络"
 
-#: ../src/Engine/Session.cs:1198
+#: ../src/Engine/Session.cs:1245
 #, csharp-format
 msgid ""
 "Failed to write to chat history. Your chat history will not be preserved. "
@@ -169,24 +199,24 @@ msgstr "无法写入聊天历史。您的聊天历史将不会保存。原因: {
 
 #. just in case the ProtocolManager is not setting the
 #. protocol chat
-#: ../src/Engine/Session.cs:1371
+#: ../src/Engine/Session.cs:1446
 msgid "Connect failed."
 msgstr "连接失败。"
 
-#: ../src/Engine/Session.cs:1402
+#: ../src/Engine/Session.cs:1460
 #, csharp-format
 msgid "No protocol manager found for the protocol: {0}"
 msgstr "未找到该协议的协议管理器: {0}"
 
-#: ../src/Engine/Session.cs:1641
+#: ../src/Engine/Session.cs:1734
 msgid "Welcome to Smuxi"
 msgstr "欢迎来到 Smuxi"
 
-#: ../src/Engine/Session.cs:1648
+#: ../src/Engine/Session.cs:1741
 msgid "Type /help to get a list of available commands."
 msgstr "输入 /help 获取可用命令列表。"
 
-#: ../src/Engine/Session.cs:1654
+#: ../src/Engine/Session.cs:1747
 msgid ""
 "After you have made a connection the list of available commands changes. Go "
 "to the newly opened connection tab and use the /help command again to see "
@@ -228,14 +258,14 @@ msgstr "服务器主机名包含无效字符 (换行)。"
 msgid "Server ID '{0}' already exists."
 msgstr "服务器 ID '{0}' 已存在。"
 
-#: ../src/Engine/Chats/ChatModel.cs:105
+#: ../src/Engine/Chats/ChatModel.cs:108
 #, csharp-format
 msgid ""
 "Failed to load chat history. Your chat history will not be preserved. "
 "Reason: {0}"
 msgstr "无法加载聊天历史。您的聊天历史将不会保留。原因: {0}"
 
-#: ../src/Engine/Chats/ChatModel.cs:300
+#: ../src/Engine/Chats/ChatModel.cs:305
 #, csharp-format
 msgid ""
 "Failed to open chat history for writing. Your chat history will not be "
diff --git a/po-Frontend-GNOME-IRC/LINGUAS b/po-Frontend-GNOME-IRC/LINGUAS
index 3f5773b..ba2078a 100644
--- a/po-Frontend-GNOME-IRC/LINGUAS
+++ b/po-Frontend-GNOME-IRC/LINGUAS
@@ -4,6 +4,8 @@ de
 en_GB
 es
 es_AR
+fa
+fi
 fr
 hr
 it
@@ -12,4 +14,6 @@ pt
 pt_BR
 ru
 sv
+te
+tr
 zh_CN
diff --git a/po-Frontend-GNOME-IRC/POTFILES.skip b/po-Frontend-GNOME-IRC/POTFILES.skip
index 3ea2802..832c75a 100644
--- a/po-Frontend-GNOME-IRC/POTFILES.skip
+++ b/po-Frontend-GNOME-IRC/POTFILES.skip
@@ -4,12 +4,11 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Frontend/
 src/Frontend-GNOME/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
diff --git a/po-Frontend-GNOME-IRC/cs.po b/po-Frontend-GNOME-IRC/cs.po
index 3414996..8749562 100644
--- a/po-Frontend-GNOME-IRC/cs.po
+++ b/po-Frontend-GNOME-IRC/cs.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-05-22 16:57+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
diff --git a/po-Frontend-GNOME-IRC/da.po b/po-Frontend-GNOME-IRC/da.po
index 5120162..103e7fc 100644
--- a/po-Frontend-GNOME-IRC/da.po
+++ b/po-Frontend-GNOME-IRC/da.po
@@ -6,9 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/po-Frontend-GNOME-IRC/de.po b/po-Frontend-GNOME-IRC/de.po
index 30d592a..5b9786e 100644
--- a/po-Frontend-GNOME-IRC/de.po
+++ b/po-Frontend-GNOME-IRC/de.po
@@ -6,9 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
diff --git a/po-Frontend-GNOME-IRC/es.po b/po-Frontend-GNOME-IRC/es.po
index b9d6855..b31b1cc 100644
--- a/po-Frontend-GNOME-IRC/es.po
+++ b/po-Frontend-GNOME-IRC/es.po
@@ -1,87 +1,90 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Juan Miguel Carrero <streinleght at gmail.com>, 2008.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+# toote, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.6.2\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Juan Miguel Carrero <streinleght at gmail.com>\n"
-"Language-Team: Spanish Spanish Localization <debian-l10n-spanish at lists.debian.org>\n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-10 18:53+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:340
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
+msgid "Query"
+msgstr "Consulta"
+
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:344
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
 msgid "Deop"
 msgstr "Deop"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:348
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
 msgstr "Voz"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:352
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
-msgstr "Quitar Voz"
+msgstr "Quitar voz"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:356
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
 msgid "Kick"
-msgstr "Patada"
+msgstr "Expulsar"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:360
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:416
 msgid "Kick + Ban"
-msgstr "Patada + Ban"
+msgstr "Expulsar + bloquear"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:364
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:420
 msgid "Ban"
-msgstr "Ban"
+msgstr "Bloquear"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:368
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:424
 msgid "Unban"
-msgstr "Quitar Ban"
-
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:374
-msgid "Query"
-msgstr "Privado"
+msgstr "Desbloquear"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:378
-#: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:61
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:430
+#: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:63
 msgid "Whois"
 msgstr "Whois"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:382
-#: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:65
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:434
+#: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:67
 msgid "CTCP"
 msgstr "CTCP"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:391
-#: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:72
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
+#: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
 msgstr "Invitar a"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:72
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
 msgstr "Ping"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:77
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:78
 msgid "Version"
 msgstr "Versión"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:82
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:83
 msgid "Time"
 msgstr "Hora"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:87
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:88
 msgid "Finger"
 msgstr "Finger"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:92
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:93
 msgid "Userinfo"
-msgstr "Información de Usuario"
+msgstr "Información de usuario"
diff --git a/po-Frontend-GNOME-IRC/de.po b/po-Frontend-GNOME-IRC/fa.po
similarity index 74%
copy from po-Frontend-GNOME-IRC/de.po
copy to po-Frontend-GNOME-IRC/fa.po
index 30d592a..d15926c 100644
--- a/po-Frontend-GNOME-IRC/de.po
+++ b/po-Frontend-GNOME-IRC/fa.po
@@ -6,84 +6,84 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
 msgid "Query"
-msgstr "Query"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
 msgid "Op"
-msgstr "Op"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
 msgid "Deop"
-msgstr "Deop"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
-msgstr "Voice"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
-msgstr "Devoice"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
 msgid "Kick"
-msgstr "Kick"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:416
 msgid "Kick + Ban"
-msgstr "Kick + Ban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:420
 msgid "Ban"
-msgstr "Ban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:424
 msgid "Unban"
-msgstr "Unban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:430
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:63
 msgid "Whois"
-msgstr "Whois"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:434
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:67
 msgid "CTCP"
-msgstr "CTCP"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
-msgstr "Einladen zu"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
-msgstr "Ping"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:78
 msgid "Version"
-msgstr "Version"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:83
 msgid "Time"
-msgstr "Zeit"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:88
 msgid "Finger"
-msgstr "Finger"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:93
 msgid "Userinfo"
-msgstr "Benutzerinformationen"
+msgstr ""
diff --git a/po-Frontend-GNOME-IRC/de.po b/po-Frontend-GNOME-IRC/fi.po
similarity index 75%
copy from po-Frontend-GNOME-IRC/de.po
copy to po-Frontend-GNOME-IRC/fi.po
index 30d592a..baeaf07 100644
--- a/po-Frontend-GNOME-IRC/de.po
+++ b/po-Frontend-GNOME-IRC/fi.po
@@ -3,27 +3,28 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Kalle Kaitala <cobrian at cobrian.net>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
+"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
+"Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
 msgid "Query"
-msgstr "Query"
+msgstr "Yksityisviesti"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
 msgid "Op"
-msgstr "Op"
+msgstr "Operaattori"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
 msgid "Deop"
@@ -31,27 +32,27 @@ msgstr "Deop"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
-msgstr "Voice"
+msgstr "Ääni"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
-msgstr "Devoice"
+msgstr "Poista Ääni"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
 msgid "Kick"
-msgstr "Kick"
+msgstr "Potki"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:416
 msgid "Kick + Ban"
-msgstr "Kick + Ban"
+msgstr "Potki + porttikielto"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:420
 msgid "Ban"
-msgstr "Ban"
+msgstr "Porttikielto"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:424
 msgid "Unban"
-msgstr "Unban"
+msgstr "Poista porttikielto"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:430
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:63
@@ -66,7 +67,7 @@ msgstr "CTCP"
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
-msgstr "Einladen zu"
+msgstr "Kutsu..."
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
@@ -74,11 +75,11 @@ msgstr "Ping"
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:78
 msgid "Version"
-msgstr "Version"
+msgstr "Versio"
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:83
 msgid "Time"
-msgstr "Zeit"
+msgstr "Aika"
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:88
 msgid "Finger"
@@ -86,4 +87,4 @@ msgstr "Finger"
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:93
 msgid "Userinfo"
-msgstr "Benutzerinformationen"
+msgstr "Userinfo"
diff --git a/po-Frontend-GNOME-IRC/fr.po b/po-Frontend-GNOME-IRC/fr.po
index 906cfbc..b67ce82 100644
--- a/po-Frontend-GNOME-IRC/fr.po
+++ b/po-Frontend-GNOME-IRC/fr.po
@@ -1,21 +1,21 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:17+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
 msgid "Query"
diff --git a/po-Frontend-GNOME-IRC/pt_BR.po b/po-Frontend-GNOME-IRC/pt_BR.po
index 3edd49f..e74b37d 100644
--- a/po-Frontend-GNOME-IRC/pt_BR.po
+++ b/po-Frontend-GNOME-IRC/pt_BR.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:20+0200\n"
-"PO-Revision-Date: 2013-07-08 22:26+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
 "Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
@@ -18,73 +18,73 @@ msgstr ""
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:384
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
+msgid "Query"
+msgstr "Query"
+
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
 msgid "Op"
 msgstr "Op"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:388
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
 msgid "Deop"
 msgstr "Deop"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:392
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
 msgstr "Voz"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
 msgstr "Retirado Voz"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
 msgid "Kick"
 msgstr "Expulso"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:416
 msgid "Kick + Ban"
 msgstr "Expulso + Banido"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:420
 msgid "Ban"
 msgstr "Banido"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:424
 msgid "Unban"
 msgstr "Desbanido"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:418
-msgid "Query"
-msgstr "Query"
-
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:422
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:430
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:63
 msgid "Whois"
 msgstr "Whois"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:426
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:434
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:67
 msgid "CTCP"
 msgstr "CTCP"
 
-#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:435
+#: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
 msgstr "Convidar para"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:72
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
 msgstr "Ping"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:77
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:78
 msgid "Version"
 msgstr "Version"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:82
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:83
 msgid "Time"
 msgstr "Tempo"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:87
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:88
 msgid "Finger"
 msgstr "Finger"
 
-#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:92
+#: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:93
 msgid "Userinfo"
 msgstr "InfoUsuário"
diff --git a/po-Frontend-GNOME-IRC/sv.po b/po-Frontend-GNOME-IRC/sv.po
index 4f6e785..2dea2a1 100644
--- a/po-Frontend-GNOME-IRC/sv.po
+++ b/po-Frontend-GNOME-IRC/sv.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-10 13:33+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -31,7 +32,7 @@ msgstr "Ta bort operatörsskap"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
-msgstr "Voice"
+msgstr "Ge \"voice\"-status"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
@@ -66,7 +67,7 @@ msgstr "CTCP"
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
-msgstr "Inbjud till"
+msgstr "Bjud in till"
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
diff --git a/po-Frontend-GNOME-IRC/de.po b/po-Frontend-GNOME-IRC/te.po
similarity index 76%
copy from po-Frontend-GNOME-IRC/de.po
copy to po-Frontend-GNOME-IRC/te.po
index 30d592a..0e663f7 100644
--- a/po-Frontend-GNOME-IRC/de.po
+++ b/po-Frontend-GNOME-IRC/te.po
@@ -6,84 +6,84 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
+"Language: te\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
 msgid "Query"
-msgstr "Query"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
 msgid "Op"
-msgstr "Op"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
 msgid "Deop"
-msgstr "Deop"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
-msgstr "Voice"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
-msgstr "Devoice"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
 msgid "Kick"
-msgstr "Kick"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:416
 msgid "Kick + Ban"
-msgstr "Kick + Ban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:420
 msgid "Ban"
-msgstr "Ban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:424
 msgid "Unban"
-msgstr "Unban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:430
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:63
 msgid "Whois"
-msgstr "Whois"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:434
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:67
 msgid "CTCP"
-msgstr "CTCP"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
-msgstr "Einladen zu"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
-msgstr "Ping"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:78
 msgid "Version"
-msgstr "Version"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:83
 msgid "Time"
-msgstr "Zeit"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:88
 msgid "Finger"
-msgstr "Finger"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:93
 msgid "Userinfo"
-msgstr "Benutzerinformationen"
+msgstr ""
diff --git a/po-Frontend-GNOME-IRC/fr.po b/po-Frontend-GNOME-IRC/tr.po
similarity index 73%
copy from po-Frontend-GNOME-IRC/fr.po
copy to po-Frontend-GNOME-IRC/tr.po
index 906cfbc..e3bb56b 100644
--- a/po-Frontend-GNOME-IRC/fr.po
+++ b/po-Frontend-GNOME-IRC/tr.po
@@ -1,89 +1,90 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
+# zeugma <sunder67 at hotmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:17+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-11-19 16:27+0000\n"
+"Last-Translator: zeugma <sunder67 at hotmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:390
 msgid "Query"
-msgstr "Chat privé"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:396
 msgid "Op"
-msgstr "Opper"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:400
 msgid "Deop"
-msgstr "Enlever l'Op"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:404
 msgid "Voice"
-msgstr "Voicer"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:408
 msgid "Devoice"
-msgstr "Enlever le Voice"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:412
 msgid "Kick"
-msgstr "Kicker"
+msgstr "Tekme"
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:416
 msgid "Kick + Ban"
-msgstr "Kicker + Bannir"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:420
 msgid "Ban"
-msgstr "Bannir"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:424
 msgid "Unban"
-msgstr "Enlever le ban"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:430
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:63
 msgid "Whois"
-msgstr "Whois"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:434
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:67
 msgid "CTCP"
-msgstr "CTCP"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/IrcGroupChatView.cs:443
 #: ../src/Frontend-GNOME-IRC/IrcPersonChatView.cs:74
 msgid "Invite to"
-msgstr "Inviter à"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:73
 msgid "Ping"
-msgstr "Ping"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:78
 msgid "Version"
-msgstr "Version"
+msgstr "Sürüm"
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:83
 msgid "Time"
-msgstr "Temps"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:88
 msgid "Finger"
-msgstr "Finger"
+msgstr ""
 
 #: ../src/Frontend-GNOME-IRC/CtcpMenu.cs:93
 msgid "Userinfo"
-msgstr "Userinfo"
+msgstr ""
diff --git a/po-Frontend-GNOME-IRC/zh_CN.po b/po-Frontend-GNOME-IRC/zh_CN.po
index 0fe984d..bbed827 100644
--- a/po-Frontend-GNOME-IRC/zh_CN.po
+++ b/po-Frontend-GNOME-IRC/zh_CN.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:10+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-13 08:16+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff --git a/po-Engine-Campfire/LINGUAS b/po-Frontend-GNOME-Twitter/LINGUAS
similarity index 71%
copy from po-Engine-Campfire/LINGUAS
copy to po-Frontend-GNOME-Twitter/LINGUAS
index 6c025d2..d11ecfb 100644
--- a/po-Engine-Campfire/LINGUAS
+++ b/po-Frontend-GNOME-Twitter/LINGUAS
@@ -1,8 +1,12 @@
 cs
 da
 de
+es
+fa
 fi
 fr
 pt_BR
 sv
+te
+tr
 zh_CN
diff --git a/po-Frontend-GNOME-Twitter/Makefile.in.in b/po-Frontend-GNOME-Twitter/Makefile.in.in
new file mode 100644
index 0000000..e5aab41
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/Makefile.in.in
@@ -0,0 +1,218 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper at gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns at gmail.com>
+#
+# This file may be copied and used freely without restrictions.  It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor at redhat.com> to use GETTEXT_PACKAGE
+#   instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob at ximian.com> to install
+#   Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns at gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p at .
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+.po.pox:
+	$(MAKE) $(GETTEXT_PACKAGE).pot
+	$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+	$(MSGFMT) -o $@ $<
+
+.po.gmo:
+	file=`echo $* | sed 's,.*/,,'`.gmo \
+	  && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+	sed -f ../intl/po2msg.sed < $< > $*.msg \
+	  && rm -f $@ && gencat $@ $*.msg
+
+
+all: all- at USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+	$(GENPOT)
+
+install: install-data
+install-data: install-data- at USE_NLS@
+install-data-no: all
+install-data-yes: all
+	$(mkdir_p) $(DESTDIR)$(itlocaledir)
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $$dir; \
+	  if test -r $$lang.gmo; then \
+	    $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+	  else \
+	    $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $(srcdir)/$$lang.gmo as" \
+		 "$$dir/$(GETTEXT_PACKAGE).mo"; \
+	  fi; \
+	  if test -r $$lang.gmo.m; then \
+	    $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+	    echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+	  else \
+	    if test -r $(srcdir)/$$lang.gmo.m ; then \
+	      $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+		$$dir/$(GETTEXT_PACKAGE).mo.m; \
+	      echo "installing $(srcdir)/$$lang.gmo.m as" \
+		   "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+	    else \
+	      true; \
+	    fi; \
+	  fi; \
+	done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info tags TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+	done
+
+check: all $(GETTEXT_PACKAGE).pot
+	rm -f missing notexist
+	srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+	if [ -r missing -o -r notexist ]; then \
+	  exit 1; \
+	fi
+
+mostlyclean:
+	rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+	rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+	rm -f Makefile Makefile.in POTFILES stamp-it
+	rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+	rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+	dists="$(DISTFILES)"; \
+	extra_dists="$(EXTRA_DISTFILES)"; \
+	for file in $$extra_dists; do \
+	  test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+	done; \
+	for file in $$dists; do \
+	  test -f $$file || file="$(srcdir)/$$file"; \
+	  ln $$file $(distdir) 2> /dev/null \
+	    || cp -p $$file $(distdir); \
+	done
+
+update-po: Makefile
+	$(MAKE) $(GETTEXT_PACKAGE).pot
+	tmpdir=`pwd`; \
+	linguas="$(USE_LINGUAS)"; \
+	for lang in $$linguas; do \
+	  echo "$$lang:"; \
+	  result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+	  if $$result; then \
+	    if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	      rm -f $$tmpdir/$$lang.new.po; \
+            else \
+	      if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	        :; \
+	      else \
+	        echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	        rm -f $$tmpdir/$$lang.new.po; \
+	        exit 1; \
+	      fi; \
+	    fi; \
+	  else \
+	    echo "msgmerge for $$lang.gmo failed!"; \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  fi; \
+	done
+
+Makefile POTFILES: stamp-it
+	@if test ! -f $@; then \
+	  rm -f stamp-it; \
+	  $(MAKE) stamp-it; \
+	fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+	       $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po-Frontend-GNOME-Twitter/POTFILES.in b/po-Frontend-GNOME-Twitter/POTFILES.in
new file mode 100644
index 0000000..09a2cb3
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/POTFILES.in
@@ -0,0 +1 @@
+src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs
diff --git a/po-Server/POTFILES.skip b/po-Frontend-GNOME-Twitter/POTFILES.skip
similarity index 88%
copy from po-Server/POTFILES.skip
copy to po-Frontend-GNOME-Twitter/POTFILES.skip
index 5694bf0..a6d0dc0 100644
--- a/po-Server/POTFILES.skip
+++ b/po-Frontend-GNOME-Twitter/POTFILES.skip
@@ -9,10 +9,12 @@ src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Frontend/
+src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
-src/Frontend-GNOME/
 src/Frontend-STFL/
 src/Frontend-SWF/
 src/Frontend-WPF/
+src/Server/
 lib/
diff --git a/po-Frontend-GNOME-Twitter/cs.po b/po-Frontend-GNOME-Twitter/cs.po
new file mode 100644
index 0000000..bf71d6c
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/cs.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Ondřej Hošek <ondra.hosek at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-06 15:08+0000\n"
+"Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "Přímá zpráva"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "Časový přehled"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "Přestat následovat"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "Následovat"
diff --git a/po-Frontend-GNOME-Twitter/da.po b/po-Frontend-GNOME-Twitter/da.po
new file mode 100644
index 0000000..7a0a8c8
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/da.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Joe Hansen <joedalton2 at yahoo.dk>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-05 19:51+0000\n"
+"Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "Direkte besked"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "Tidslinje"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "Følg ikke længere"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "Følg"
diff --git a/po-Frontend-GNOME-Twitter/de.po b/po-Frontend-GNOME-Twitter/de.po
new file mode 100644
index 0000000..58224cd
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/de.po
@@ -0,0 +1,36 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Bianca Mix <heavydemon at freenet.de>, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-11 19:38+0000\n"
+"Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "Direktnachricht"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "Zeitachse"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "Nicht mehr folgen"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "Folgen"
diff --git a/po-Frontend-GNOME-Twitter/es.po b/po-Frontend-GNOME-Twitter/es.po
new file mode 100644
index 0000000..c194d0c
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/es.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# toote, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-10 18:53+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "Mensaje directo"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "Línea temporal"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "Dejar de seguir"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "Seguir"
diff --git a/po-Frontend-GNOME-Twitter/fa.po b/po-Frontend-GNOME-Twitter/fa.po
new file mode 100644
index 0000000..73c54f1
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/fa.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-05 18:35+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr ""
diff --git a/po-Frontend-GNOME-Twitter/fi.po b/po-Frontend-GNOME-Twitter/fi.po
new file mode 100644
index 0000000..970b5c9
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/fi.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-05 18:35+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr ""
diff --git a/po-Frontend-GNOME-Twitter/fr.po b/po-Frontend-GNOME-Twitter/fr.po
new file mode 100644
index 0000000..42ec46c
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/fr.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Clément Bourgeois <moonpyk at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-13 21:36+0000\n"
+"Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "Message privé"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "Chronologie"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "Se désabonner"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "Suivre"
diff --git a/po-Frontend-GNOME-Twitter/pt_BR.po b/po-Frontend-GNOME-Twitter/pt_BR.po
new file mode 100644
index 0000000..dee37cf
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/pt_BR.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-05 18:35+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr ""
diff --git a/po-Frontend-GNOME-Twitter/sv.po b/po-Frontend-GNOME-Twitter/sv.po
new file mode 100644
index 0000000..518391a
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/sv.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Martin Bagge <brother at bsnet.se>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-10 13:30+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "Direktmeddelande"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "Tidslinje"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "Avfölj"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "Följ"
diff --git a/po-Frontend-GNOME-Twitter/te.po b/po-Frontend-GNOME-Twitter/te.po
new file mode 100644
index 0000000..fd6aed9
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/te.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr ""
diff --git a/po-Frontend-GNOME-Twitter/tr.po b/po-Frontend-GNOME-Twitter/tr.po
new file mode 100644
index 0000000..de2504b
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/tr.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-05 18:35+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr ""
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr ""
diff --git a/po-Frontend-GNOME-Twitter/zh_CN.po b/po-Frontend-GNOME-Twitter/zh_CN.po
new file mode 100644
index 0000000..467cb5c
--- /dev/null
+++ b/po-Frontend-GNOME-Twitter/zh_CN.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Dean Lee <xslidian at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:05+0100\n"
+"PO-Revision-Date: 2013-12-13 08:16+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:52
+msgid "Direct Message"
+msgstr "私信"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:60
+msgid "Timeline"
+msgstr "时间线"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:65
+msgid "Unfollow"
+msgstr "取消关注"
+
+#: ../src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs:69
+msgid "Follow"
+msgstr "关注"
diff --git a/po-Frontend-GNOME-XMPP/LINGUAS b/po-Frontend-GNOME-XMPP/LINGUAS
index 21aa89c..ba2078a 100644
--- a/po-Frontend-GNOME-XMPP/LINGUAS
+++ b/po-Frontend-GNOME-XMPP/LINGUAS
@@ -4,11 +4,16 @@ de
 en_GB
 es
 es_AR
+fa
+fi
 fr
 hr
 it
 pl
 pt
+pt_BR
 ru
 sv
+te
+tr
 zh_CN
diff --git a/po-Frontend-GNOME-XMPP/POTFILES.skip b/po-Frontend-GNOME-XMPP/POTFILES.skip
index 8e3b0e5..920f270 100644
--- a/po-Frontend-GNOME-XMPP/POTFILES.skip
+++ b/po-Frontend-GNOME-XMPP/POTFILES.skip
@@ -4,13 +4,12 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Frontend/
 src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-STFL/
 src/Frontend-SWF/
 src/Frontend-WPF/
diff --git a/po-Frontend-GNOME-XMPP/cs.po b/po-Frontend-GNOME-XMPP/cs.po
index 4332a5e..d817c83 100644
--- a/po-Frontend-GNOME-XMPP/cs.po
+++ b/po-Frontend-GNOME-XMPP/cs.po
@@ -1,78 +1,42 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Michal Simunek <michal.simunek at gmail.com>, 2009 - 2010.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Ondřej Hošek <ondra.hosek at gmail.com>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: smuxi-frontend-gnome-irc 0.6.4.1-1\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: 2010-07-15 18:58+0200\n"
-"Last-Translator: Michal Simunek <michal.simunek at gmail.com>\n"
-"Language-Team: Czech <debian-l10n-czech at lists.debian.org>\n"
-"Language: cs\n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-06 15:10+0000\n"
+"Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr "Soukromý rozhovor"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
 msgid "Whois"
 msgstr "Kdo je"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
-msgid "Query"
-msgstr "Zeptat se"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "Přidat ke kontaktům"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
-msgstr "Pozvat na"
-
-#~ msgid "Op"
-#~ msgstr "Op"
-
-#~ msgid "Deop"
-#~ msgstr "Deop"
-
-#~ msgid "Voice"
-#~ msgstr "Hlas"
-
-#~ msgid "Devoice"
-#~ msgstr "Ukončit hlas"
-
-#~ msgid "Kick"
-#~ msgstr "Vykopnout"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "Vykopnout + Ban"
-
-#~ msgid "Ban"
-#~ msgstr "Ban"
-
-#~ msgid "Unban"
-#~ msgstr "Zrušit ban"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "Verze"
-
-#~ msgid "Time"
-#~ msgstr "Čas"
-
-#~ msgid "Finger"
-#~ msgstr "Finger"
+msgstr "Pozvat do"
 
-#~ msgid "Userinfo"
-#~ msgstr "Info o uživateli"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "Přejmenovat"
diff --git a/po-Frontend-GNOME-XMPP/da.po b/po-Frontend-GNOME-XMPP/da.po
index b9120e1..51957fe 100644
--- a/po-Frontend-GNOME-XMPP/da.po
+++ b/po-Frontend-GNOME-XMPP/da.po
@@ -1,79 +1,42 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
+# Joe Hansen <joedalton2 at yahoo.dk>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Danish (http://www.transifex.net/projects/p/smuxi/team/da/)\n"
-"Language: da\n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-05 19:51+0000\n"
+"Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
-msgid "Whois"
-msgstr "Hvem er"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
 msgid "Query"
 msgstr "Forespørgsel"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr "Hvem er"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "Tilføj til kontakter"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
 msgstr "Inviter til"
 
-#~ msgid "Op"
-#~ msgstr "Op"
-
-#~ msgid "Deop"
-#~ msgstr "Deop"
-
-#~ msgid "Voice"
-#~ msgstr "Voice"
-
-#~ msgid "Devoice"
-#~ msgstr "Devoice"
-
-#~ msgid "Kick"
-#~ msgstr "Smid ud"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "Smid ud + giv karantæne"
-
-#~ msgid "Ban"
-#~ msgstr "Giv karantæne"
-
-#~ msgid "Unban"
-#~ msgstr "Fjern karantæne"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "Time"
-#~ msgstr "Tid"
-
-#~ msgid "Finger"
-#~ msgstr "Finger"
-
-#~ msgid "Userinfo"
-#~ msgstr "Brugerinfo"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "Omdøb"
diff --git a/po-Frontend-GNOME-XMPP/de.po b/po-Frontend-GNOME-XMPP/de.po
index e150725..8e9606e 100644
--- a/po-Frontend-GNOME-XMPP/de.po
+++ b/po-Frontend-GNOME-XMPP/de.po
@@ -1,79 +1,43 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
+# Bianca Mix <heavydemon at freenet.de>, 2013
+# Mirco Bauer <meebey at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: German (http://www.transifex.net/projects/p/smuxi/team/de/)\n"
-"Language: de\n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-11 19:38+0000\n"
+"Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
+"Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
-msgid "Whois"
-msgstr "Whois"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
 msgid "Query"
 msgstr "Query"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr "Whois"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "Zu Kontakten hinzufügen"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
 msgstr "Einladen zu"
 
-#~ msgid "Op"
-#~ msgstr "Op"
-
-#~ msgid "Deop"
-#~ msgstr "Deop"
-
-#~ msgid "Voice"
-#~ msgstr "Voice"
-
-#~ msgid "Devoice"
-#~ msgstr "Devoice"
-
-#~ msgid "Kick"
-#~ msgstr "Kick"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "Kick + Ban"
-
-#~ msgid "Ban"
-#~ msgstr "Ban"
-
-#~ msgid "Unban"
-#~ msgstr "Unban"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "Time"
-#~ msgstr "Zeit"
-
-#~ msgid "Finger"
-#~ msgstr "Finger"
-
-#~ msgid "Userinfo"
-#~ msgstr "Benutzerinformationen"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "Umbenennen"
diff --git a/po-Frontend-GNOME-XMPP/es.po b/po-Frontend-GNOME-XMPP/es.po
index ff89e91..a06d6a0 100644
--- a/po-Frontend-GNOME-XMPP/es.po
+++ b/po-Frontend-GNOME-XMPP/es.po
@@ -1,79 +1,42 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Juan Miguel Carrero <streinleght at gmail.com>, 2008.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# toote, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.6.2\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Juan Miguel Carrero <streinleght at gmail.com>\n"
-"Language-Team: Spanish Spanish Localization <debian-l10n-spanish at lists."
-"debian.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-10 12:53+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr "Consulta"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
 msgid "Whois"
 msgstr "Whois"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
-msgid "Query"
-msgstr "Privado"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "Agregar a contactos"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
 msgstr "Invitar a"
 
-#~ msgid "Op"
-#~ msgstr "Op"
-
-#~ msgid "Deop"
-#~ msgstr "Deop"
-
-#~ msgid "Voice"
-#~ msgstr "Voz"
-
-#~ msgid "Devoice"
-#~ msgstr "Quitar Voz"
-
-#~ msgid "Kick"
-#~ msgstr "Patada"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "Patada + Ban"
-
-#~ msgid "Ban"
-#~ msgstr "Ban"
-
-#~ msgid "Unban"
-#~ msgstr "Quitar Ban"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "Versión"
-
-#~ msgid "Time"
-#~ msgstr "Hora"
-
-#~ msgid "Finger"
-#~ msgstr "Finger"
-
-#~ msgid "Userinfo"
-#~ msgstr "Información de Usuario"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "Renombrar"
diff --git a/po-Frontend-GNOME-XMPP/fa.po b/po-Frontend-GNOME-XMPP/fa.po
new file mode 100644
index 0000000..eb49905
--- /dev/null
+++ b/po-Frontend-GNOME-XMPP/fa.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-05 18:36+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
+msgid "Add To Contacts"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
+msgid "Invite to"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr ""
diff --git a/po-Frontend-GNOME-XMPP/fi.po b/po-Frontend-GNOME-XMPP/fi.po
new file mode 100644
index 0000000..2235521
--- /dev/null
+++ b/po-Frontend-GNOME-XMPP/fi.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-05 18:36+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
+msgid "Add To Contacts"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
+msgid "Invite to"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr ""
diff --git a/po-Frontend-GNOME-XMPP/fr.po b/po-Frontend-GNOME-XMPP/fr.po
index 491eb93..b238ea9 100644
--- a/po-Frontend-GNOME-XMPP/fr.po
+++ b/po-Frontend-GNOME-XMPP/fr.po
@@ -1,79 +1,42 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
+# Clément Bourgeois <moonpyk at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-13 21:40+0000\n"
+"Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
-msgid "Whois"
-msgstr "Whois"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
 msgid "Query"
 msgstr "Chat privé"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr "Whois"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "Ajouter aux contacts"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
 msgstr "Inviter à"
 
-#~ msgid "Op"
-#~ msgstr "Opper"
-
-#~ msgid "Deop"
-#~ msgstr "Enlever l'Op"
-
-#~ msgid "Voice"
-#~ msgstr "Voicer"
-
-#~ msgid "Devoice"
-#~ msgstr "Enlever le Voice"
-
-#~ msgid "Kick"
-#~ msgstr "Kicker"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "Kicker + Bannir"
-
-#~ msgid "Ban"
-#~ msgstr "Bannir"
-
-#~ msgid "Unban"
-#~ msgstr "Enlever le ban"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "Time"
-#~ msgstr "Temps"
-
-#~ msgid "Finger"
-#~ msgstr "Finger"
-
-#~ msgid "Userinfo"
-#~ msgstr "Userinfo"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "Renommer"
diff --git a/po-Frontend-GNOME-XMPP/pt_BR.po b/po-Frontend-GNOME-XMPP/pt_BR.po
new file mode 100644
index 0000000..0608e44
--- /dev/null
+++ b/po-Frontend-GNOME-XMPP/pt_BR.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-05 18:36+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
+msgid "Add To Contacts"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
+msgid "Invite to"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr ""
diff --git a/po-Frontend-GNOME-XMPP/sv.po b/po-Frontend-GNOME-XMPP/sv.po
index c891d46..2f1b972 100644
--- a/po-Frontend-GNOME-XMPP/sv.po
+++ b/po-Frontend-GNOME-XMPP/sv.po
@@ -1,79 +1,42 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: 2010-11-30 04:12+0000\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Swedish (http://www.transifex.net/projects/p/smuxi/team/sv/)\n"
-"Language: sv\n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-10 13:30+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
-msgid "Whois"
-msgstr "Användarinformation"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
 msgid "Query"
-msgstr "Privat"
+msgstr "Fråga"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr "Vem är"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "Lägg till i kontakter"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
-msgstr "Inbjud till"
-
-#~ msgid "Op"
-#~ msgstr "Gör till operatör"
-
-#~ msgid "Deop"
-#~ msgstr "Ta bort operatörsskap"
-
-#~ msgid "Voice"
-#~ msgstr "Voice"
-
-#~ msgid "Devoice"
-#~ msgstr "Ta bort voice"
-
-#~ msgid "Kick"
-#~ msgstr "Sparka"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "Sparka och stäng ute"
-
-#~ msgid "Ban"
-#~ msgstr "Stäng ute"
-
-#~ msgid "Unban"
-#~ msgstr "Upphäv utestängning"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "Time"
-#~ msgstr "Tid"
-
-#~ msgid "Finger"
-#~ msgstr "Finger"
+msgstr "Bjud in till"
 
-#~ msgid "Userinfo"
-#~ msgstr "Användarinformation"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "Byt namn"
diff --git a/po-Frontend-GNOME-XMPP/te.po b/po-Frontend-GNOME-XMPP/te.po
new file mode 100644
index 0000000..bb37a4f
--- /dev/null
+++ b/po-Frontend-GNOME-XMPP/te.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
+msgid "Add To Contacts"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
+msgid "Invite to"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr ""
diff --git a/po-Frontend-GNOME-XMPP/tr.po b/po-Frontend-GNOME-XMPP/tr.po
new file mode 100644
index 0000000..1b602f9
--- /dev/null
+++ b/po-Frontend-GNOME-XMPP/tr.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Smuxi - IRC client\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-05 18:36+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
+msgid "Query"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
+msgid "Add To Contacts"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
+msgid "Invite to"
+msgstr ""
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr ""
diff --git a/po-Frontend-GNOME-XMPP/zh_CN.po b/po-Frontend-GNOME-XMPP/zh_CN.po
index 6039721..7c55416 100644
--- a/po-Frontend-GNOME-XMPP/zh_CN.po
+++ b/po-Frontend-GNOME-XMPP/zh_CN.po
@@ -1,81 +1,42 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012.
+# Dean Lee <xslidian at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:23+0200\n"
-"PO-Revision-Date: 2012-01-07 10:09+0000\n"
+"POT-Creation-Date: 2013-12-11 17:06+0100\n"
+"PO-Revision-Date: 2013-12-13 08:17+0000\n"
 "Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/smuxi/"
-"team/zh_CN/)\n"
-"Language: zh_CN\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:220
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:51
-msgid "Whois"
-msgstr "详情"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:224
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:219
 msgid "Query"
 msgstr "私聊"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:229
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:55
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:227
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:215
+msgid "Whois"
+msgstr "详情"
+
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:233
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:221
 msgid "Add To Contacts"
-msgstr ""
+msgstr "添加到联系人"
 
-#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:234
-#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:59
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:239
+#: ../src/Frontend-GNOME-XMPP/XmppPersonChatView.cs:227
 msgid "Invite to"
 msgstr "邀请加入"
 
-#~ msgid "Op"
-#~ msgstr "设为版主"
-
-#~ msgid "Deop"
-#~ msgstr "撤销版主"
-
-#~ msgid "Voice"
-#~ msgstr "设为认证用户"
-
-#~ msgid "Devoice"
-#~ msgstr "撤销认证用户"
-
-#~ msgid "Kick"
-#~ msgstr "踢除"
-
-#~ msgid "Kick + Ban"
-#~ msgstr "踢除 + 封禁"
-
-#~ msgid "Ban"
-#~ msgstr "封禁"
-
-#~ msgid "Unban"
-#~ msgstr "解封"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Ping"
-#~ msgstr "Ping"
-
-#~ msgid "Version"
-#~ msgstr "版本"
-
-#~ msgid "Time"
-#~ msgstr "用户时间"
-
-#~ msgid "Finger"
-#~ msgstr "真实姓名与空闲时间"
-
-#~ msgid "Userinfo"
-#~ msgstr "用户信息"
+#: ../src/Frontend-GNOME-XMPP/XmppGroupChatView.cs:257
+msgid "Rename"
+msgstr "改名"
diff --git a/po-Frontend-GNOME/LINGUAS b/po-Frontend-GNOME/LINGUAS
index 13fc497..a09689e 100644
--- a/po-Frontend-GNOME/LINGUAS
+++ b/po-Frontend-GNOME/LINGUAS
@@ -5,6 +5,7 @@ de
 es
 es_AR
 en_GB
+fa
 fi
 fr
 hr
@@ -14,4 +15,6 @@ pt
 pt_BR
 ru
 sv
+te
+tr
 zh_CN
diff --git a/po-Frontend-GNOME/POTFILES.skip b/po-Frontend-GNOME/POTFILES.skip
index 89e78c1..7740ca3 100644
--- a/po-Frontend-GNOME/POTFILES.skip
+++ b/po-Frontend-GNOME/POTFILES.skip
@@ -3,6 +3,7 @@ src/Common/
 src/Frontend/
 src/Frontend-GNOME/obj/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
@@ -11,8 +12,6 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Server/
diff --git a/po-Frontend-GNOME/cs.po b/po-Frontend-GNOME/cs.po
index 85e144e..b309c65 100644
--- a/po-Frontend-GNOME/cs.po
+++ b/po-Frontend-GNOME/cs.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 21:21+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-06 13:56+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
 "MIME-Version: 1.0\n"
@@ -261,9 +261,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "Automaticky přepnout k nově otevřeným skupinovým chatům"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Záložky"
+msgid "Tree"
+msgstr "Strom"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -542,14 +541,14 @@ msgstr "Chyba: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Opravdu si přejete odstranit engine \"{0}\"?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Chystáte se vložit {0} řádků. Chcete pokračovat?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Příkazy rozhraní"
 
@@ -604,11 +603,11 @@ msgstr "Filtry"
 msgid "Logging"
 msgstr "Přihlašování"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Políčko Přezdívka(y) nemůže být prázdné."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "Neplatný výraz pro zvýraznění: '{0}'. Příčina: {1}"
@@ -642,30 +641,30 @@ msgstr "Odpojen od enginu."
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Obnovuji připojení k enginu... (pokus {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Způsobeno: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "Rozhraní ztratilo spojení se serverem.\nChcete se nyní znovu připojit?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "Opětovné připojení k serveru selhalo.\nChcete to zkusit znovu?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "Server ztratil spojení s rozhraním.\nChcete se nyní znovu připojit?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Zobrazit"
 
@@ -727,38 +726,38 @@ msgstr "Engine s tímto názvem již existuje. Zadejte prosím jiný název."
 msgid "Enter which chat to join"
 msgstr "Zadejte se kterým chatem se připojit"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "O Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Nastavení"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Nelze přidat server: "
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Přepnutím na místní engine se odpojíte od aktuálního enginu!\nOpravdu si přejete pokračovat?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Přepnutím na vzdálený engine se odpojíte od aktuálního enginu!\nOpravdu si přejete pokračovat?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Den se změnil z {0} v {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Den změněn na {0}"
@@ -797,35 +796,35 @@ msgstr "Typ"
 msgid "Pattern"
 msgstr "Vzor"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Režim pomalého spojení je aktivní: nesynchronizuji zprávy."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Zobrazit _nabídky"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Přijímání seznamu uživatelů pro {0}..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "hotovo."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Osoba"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "Opět se připojit"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1041,6 +1040,10 @@ msgstr "Smuxi - Předvolby"
 msgid "Nicknames:"
 msgstr "Přezdívky:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Záložky"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Umístění seznamu uživatelů </b>"
diff --git a/po-Frontend-GNOME/da.po b/po-Frontend-GNOME/da.po
index 2cd30e5..b67e757 100644
--- a/po-Frontend-GNOME/da.po
+++ b/po-Frontend-GNOME/da.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-20 18:46+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-05 19:24+0000\n"
 "Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
 "MIME-Version: 1.0\n"
@@ -261,9 +261,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "Skift automatisk til seneste åbnede gruppesamtaler (chat)"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Faneblade"
+msgid "Tree"
+msgstr "Træ"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -542,14 +541,14 @@ msgstr "Fejl: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Er du sikker på, at du ønsker at slette motoren »{0}«?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Du er ved at indsætte {0} linjer. Ønsker du at fortsætte?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Grænsefladekommandoer"
 
@@ -604,11 +603,11 @@ msgstr "Filtre"
 msgid "Logging"
 msgstr "Logning"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Brugernavnsfelter må ikke være tomme."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "Ugyldigt fremhævet regulært udtryk: '{0}'. Årsag: {1}"
@@ -642,30 +641,30 @@ msgstr "Afbrudt fra motor."
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Forbinder til motor igen... (forsøg {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Årsag: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "Grænsefladen har mistet forbindelsen til serveren.\nØnsker du at tilslutte nu?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "Gentilslutning til serveren mislykkedes.\nØnsker du at forsøge igen?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "Serveren har mistet forbindelsen til grænsefladen.\nØnsker du at tilslutte igen?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Vis"
 
@@ -727,38 +726,38 @@ msgstr "En motor med dette navn findes allerede! Angiv venligst et andet."
 msgid "Enter which chat to join"
 msgstr "Indtast hvilken samtale (chat) du ønsker at deltage i"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "Om Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Præferencer"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Kunne ikke tilføje server: "
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Skift til lokal motor vil afbryde dig fra den aktuelle motor!\nEr du sikker på, at du ønsker at gøre dette?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Skift af den eksterne motor vil afbryde dig fra den aktuelle motor!\nEr du sikker på, at du ønsker at gøre dette?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Dag ændret fra {0} til {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Dag ændret til {0}"
@@ -797,35 +796,35 @@ msgstr "Type"
 msgid "Pattern"
 msgstr "Mønster"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Tilstand for lav båndbredde er aktiv: Ingen beskeder synkroniseret."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Vis _menubjælke"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Henter brugerlsite for {0}..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "færdig."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Person"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "Genforbind"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1041,6 +1040,10 @@ msgstr "Smuxi - indstillinger"
 msgid "Nicknames:"
 msgstr "Brugernavne:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Faneblade"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Placering af brugerliste</b>"
diff --git a/po-Frontend-GNOME/de.po b/po-Frontend-GNOME/de.po
index e8b3325..fc300b3 100644
--- a/po-Frontend-GNOME/de.po
+++ b/po-Frontend-GNOME/de.po
@@ -8,10 +8,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-22 18:56+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-11 19:30+0000\n"
+"Last-Translator: Bianca Mix <heavydemon at freenet.de>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -262,9 +262,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "Automatisches Wechseln zu neu geöffneten Gruppen-Gesprächsfenstern"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Reiter"
+msgid "Tree"
+msgstr "Baum"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -543,14 +542,14 @@ msgstr "Fehler: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Möchten Sie wirklich die Engine \"{0}\" löschen?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Sie sind dabei, {0} Zeilen einzufügen. Möchten Sie fortfahren?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Frontend Befehle"
 
@@ -605,11 +604,11 @@ msgstr "Filter"
 msgid "Logging"
 msgstr "Geprächsprotokollierung"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Das Nickname(n)-Feld darf nicht leer sein."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "Ungültiger Highlight regex: '{0}'. Ursache: {1}"
@@ -643,30 +642,30 @@ msgstr "Von der Engine getrennt."
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Wiederverbinden zur Engine... (Versuch {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Grund: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "Der Server hat die Verbindung zum Frontend verloren.\nMöchten Sie diese nun erneut aufbauen?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "Erneutes Verbindung zum Server ist fehlgeschlagen.\nMöchten Sie es nochmals versuchen?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "Der Server hat die Verbindung zum Frontend verloren.\nMöchten Sie diese nun erneut aufbauen?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Zeige"
 
@@ -728,38 +727,38 @@ msgstr "Es existiert bereits eine Engine mit diesem Namen! Bitte geben Sie einen
 msgid "Enter which chat to join"
 msgstr "Geben Sie den zu betretenden Chat ein"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "Über Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Fehler beim Hinzufügen des Servers:"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Das Wechseln zur lokalen Engine wird Sie von der jetzigen Engine trennen!\nMöchten Sie fortfahren?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Das Wechseln zur entfernten Engine wird Sie von der jetzigen Engine trennen!\nMöchten Sie fortfahren?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Tag wechselte vom {0} zum {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Tageswechsel: {0}"
@@ -798,35 +797,35 @@ msgstr "Typ"
 msgid "Pattern"
 msgstr "Muster"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Geringe-Bandbreite-Modus ist aktiviert: Keine Nachrichten synchronisiert."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Zeige Menüleiste"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Rufe die Benutzer-Liste für {0} ab..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "abgeschlossen."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Person"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "Wiederverbinden"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1042,6 +1041,10 @@ msgstr "Smuxi - Einstellungen"
 msgid "Nicknames:"
 msgstr "Nicknamen:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Reiter"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Position der Benutzer-Liste </b>"
diff --git a/po-Frontend-GNOME/es.po b/po-Frontend-GNOME/es.po
index 6192ecd..5f4adcc 100644
--- a/po-Frontend-GNOME/es.po
+++ b/po-Frontend-GNOME/es.po
@@ -1,986 +1,1162 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Juan Miguel Carrero <streinleght at gmail.com>, 2008-2009.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+# toote, 2013
+# Ricardo Hermosilla <ra.hermosillac at gmail.com>, 2012
 msgid ""
 msgstr ""
-"Project-Id-Version: 0.6.2\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2009-08-12 16:47+0100\n"
-"Last-Translator: Juan Miguel Carrero <streinleght at gmail.com>\n"
-"Language-Team: Spanish Spanish Localization <debian-l10n-spanish at lists.debian.org>\n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-10 19:45+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:1
-msgid "<b> Chat </b>"
-msgstr "<b> Chat </b>"
+msgid "Smuxi Preferences"
+msgstr "Preferencias Smuxi"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:2
-msgid "<b> Color </b>"
-msgstr "<b> Color </b>"
+msgid ""
+"The nickname to use. You can specify extra nicknames (separated by spaces) "
+"which will be used as fallbacks when the first choice is not available. By "
+"default $nick_ and $nick__ will be used as fallbacks."
+msgstr "El nick a usar. Puede especificar nicks adicionales (separados por espacios) que serán usados como opciones de respaldo cuando la primera no esté disponible. De forma predeterminada se utilizará $nick_ y $nick__ como respaldos."
 
 #: ../glade/smuxi-frontend-gnome.glade.h:3
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1364
-msgid "<b> Entry Field </b>"
-msgstr "<b> Campo de Entrada </b>"
+msgid "Nickname(s):"
+msgstr "Nick(s):"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:4
-msgid "<b> Font </b>"
-msgstr "<b> Fuente </b>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:315
+msgid "Username:"
+msgstr "Nombre de usuario:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:5
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1694
-msgid "<b> Highlighting </b>"
-msgstr "<b> Resaltar </b>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:338
+msgid "Realname:"
+msgstr "Nombre real:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:6
-msgid "<b> Notification Area Icon </b>"
-msgstr "<b> Icono de Área de Notificación </b>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:359
+msgid "Encoding:"
+msgstr "Codificación:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:7
-msgid "<b> Person List Position </b>"
-msgstr "<b> Posición Lista de Personas </b>"
+msgid "Automatically convert UTF-8 characters"
+msgstr "Convertir caracteres UTF-8 automáticamente"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:8
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1201
-msgid "<b> Tab Colors </b>"
-msgstr "<b> Colores de pestañas </b>"
+msgid "<b>General</b>"
+msgstr "<b>General</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:9
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1102
-msgid "<b> Tabs Position </b>"
-msgstr "<b> Posicion de pestañas </b>"
+msgid "Type:"
+msgstr "Tipo:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:10
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1507
-msgid "<b> Topic Position </b>"
-msgstr "<b> Posicion del topic </b>"
+msgid "Host:"
+msgstr "Dominio:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:11
-msgid "<b>General</b>"
-msgstr "<b>General</b>"
+msgid "Password:"
+msgstr "Contraseña:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:12
-msgid "<b>Global Commands</b>"
-msgstr "<b>Comandos globales</b>"
+msgid "Port:"
+msgstr "Puerto:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:13
-msgid "<b>Messaging Menu</b>"
-msgstr "<b>Menú de Mensajería</b>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:170
+msgid "Show Password"
+msgstr "Mostrar contraseña:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:14
 msgid "<b>Network Proxy</b>"
-msgstr "<b>Red Proxy</b>"
+msgstr "<b>Proxy de red</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:15
-msgid "<b>Notification Popups</b>"
-msgstr "<b>Notificaciones emergentes</b>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:381
+msgid "On Connect Commands:"
+msgstr "Órdenes al conectar:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:16
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1153
-msgid "Activity"
-msgstr "Actividad"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:427
+msgid "On Startup Commands:"
+msgstr "Órdenes al arrancar:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:17
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:235
-msgid "Automatically connect to server at startup"
-msgstr "Conectar automáticamente al servidor al iniciar"
+msgid "<b>Global Commands</b>"
+msgstr "<b>Órdenes globales</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:18
-msgid "Background"
-msgstr "Fondo"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:471
+msgid "C_onnection"
+msgstr "C_onexión"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:19
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1352
-msgid "Bash-Style Completion"
-msgstr "Autocompletado  Bash"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:526
+msgid "Timestamp Format:"
+msgstr "Formato de marca temporal:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:20
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1682
-msgid "Beep on highlight"
-msgstr "Beep al resaltar"
-
-#. Container child vbox6.Gtk.Box+BoxChild
-#. Container child vbox11.Gtk.Box+BoxChild
-#: ../glade/smuxi-frontend-gnome.glade.h:21
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:972
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:994
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1453
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1478
-msgid "Bottom"
-msgstr "Abajo"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:22
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:738
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:546
 msgid "Buffer Lines:"
 msgstr "Lineas de buffer:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:23
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:663
-msgid "C_onnection"
-msgstr "C_onexión"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:24
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1304
-msgid "Command Character:"
-msgstr "Carácter de Comandos:"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:25
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1327
-msgid "Command History Size:"
-msgstr "Tamaño Historial de Comandos:"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:26
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1284
-msgid "Completion Character:"
-msgstr "Carácter de Auto-Completar"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:27
-msgid "Enable"
-msgstr "Habilitar"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:28
-msgid "Enabled"
-msgstr "Habilitado"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:29
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:551
-msgid "Encoding:"
-msgstr "Codificación:"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:30
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:761
+#: ../glade/smuxi-frontend-gnome.glade.h:21
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:569
 msgid "Engine Buffer Lines:"
-msgstr "Lineas de buffer del motor"
+msgstr "Líneas de buffer del motor:"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:22
+msgid ""
+"ss = seconds\n"
+"mm = minutes\n"
+"hh = hours (01 - 12)\n"
+"HH = hours (00 - 23)\n"
+"tt = AM/PM\n"
+"\n"
+"dd = day\n"
+"MM = month\n"
+"yy/yyyy = year"
+msgstr "ss = segundos\nmm = minutos\nhh = hora (01 - 12)\nHH = hora (00 - 23)\ntt = AM/PM\n\ndd = día\nMM = mes\nyy/yyyy = año"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:31
-msgid "Foreground"
-msgstr "Prioridad"
+msgid "Persistency Type:"
+msgstr "Tipo de persistencia:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:32
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:917
-msgid "General"
-msgstr "General"
+msgid "Volatile Buffer Lines:"
+msgstr "Líneas de buffer volátiles:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:33
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1173
-msgid "Highlight"
-msgstr "Resaltar"
+msgid "Persistent Buffer Lines:"
+msgstr "Líneas de buffer persistentes:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:34
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1658
-msgid "Highlight words:"
-msgstr "Palabras resaltadas:"
+msgid "<b>Message Buffer</b>"
+msgstr "<b>Buffer de mensaje</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:35
-msgid "Host:"
-msgstr "Dominio:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:628
+msgid "Strip Colors"
+msgstr "Quitar colores"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:36
-msgid "Hostname:"
-msgstr "Nombre del Host:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:667
+msgid "Strip Formattings"
+msgstr "Quitar formatos"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:37
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1373
-msgid "Input"
-msgstr "Entrada"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:707
+msgid "Strip UTF-8"
+msgstr "Quitar UTF-8"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:38
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1163
-msgid "Join/Part/Mode"
-msgstr "Entrar/Salir/Modo"
+msgid "Show Advanced Settings"
+msgstr "Mostrar configuraciones avanzadas"
 
-#. Container child vbox6.Gtk.Box+BoxChild
-#. Container child vbox12.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:39
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1008
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1033
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1527
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1553
-msgid "Left"
-msgstr "Izquierda"
+msgid "<b>Advanced</b>"
+msgstr "<b>Avanzado</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:40
-msgid "Log Filtered Messages"
-msgstr "Registro de mensajes filtrados"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:725
+msgid "General"
+msgstr "General"
 
+#. Container child vbox6.Gtk.Box+BoxChild
+#. Container child vbox11.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:41
-msgid "Network:"
-msgstr "Redes:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:743
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:767
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1220
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1246
+msgid "Top"
+msgstr "Arriba"
 
+#. Container child vbox6.Gtk.Box+BoxChild
+#. Container child vbox11.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:42
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1394
-msgid "Nick Colors"
-msgstr "Colores del Nick"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:780
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:802
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1261
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1286
+msgid "Bottom"
+msgstr "Abajo"
 
+#. Container child vbox6.Gtk.Box+BoxChild
+#. Container child vbox12.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:43
-msgid "Nickname(s):"
-msgstr "Nick(s):"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:816
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:841
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1335
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1361
+msgid "Left"
+msgstr "Izquierda"
 
+#. Container child vbox6.Gtk.Box+BoxChild
+#. Container child vbox12.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:44
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1145
-msgid "No Activity"
-msgstr "Sin Actividad"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:856
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:881
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1376
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1401
+msgid "Right"
+msgstr "Derecha"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:45
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1088
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1493
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1608
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:896
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1301
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1416
 msgid "None"
 msgstr "Ninguno"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:46
-msgid "Notification"
-msgstr "Notificación"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:910
+msgid "<b> Tabs Position </b>"
+msgstr "<b> Posición de pestañas </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:47
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:573
-msgid "On Connect Commands:"
-msgstr "Comandos al conectar:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:981
+msgid "Highlight"
+msgstr "Resaltar"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:48
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:619
-msgid "On Startup Commands:"
-msgstr "Comandos al arrancar:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:961
+msgid "Activity"
+msgstr "Actividad"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:49
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1706
-msgid "Output"
-msgstr "Salida"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:953
+msgid "No Activity"
+msgstr "Sin actividad"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:50
-msgid "Override"
-msgstr "Anular"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:971
+msgid "Join/Part/Mode"
+msgstr "Entrar/Salir/Modo"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:51
-msgid "Password:"
-msgstr "Contraseña:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1009
+msgid "<b> Tab Colors </b>"
+msgstr "<b> Colores de pestañas </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:52
-msgid "Port:"
-msgstr "Puerto:"
+msgid "Automatically switch to newly opened person chats"
+msgstr "Cambiar automáticamente a nuevos chats personales abiertos"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:53
-msgid "Protocol:"
-msgstr "Protocolo:"
+msgid "Automatically switch to newly opened group chats"
+msgstr "Cambiar automáticamente a nuevos chats grupales abiertos"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:530
-msgid "Realname:"
-msgstr "Nombre Real:"
+msgid "Tree"
+msgstr "Árbol"
 
-#. Container child vbox6.Gtk.Box+BoxChild
-#. Container child vbox12.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:55
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1048
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1073
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1568
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1593
-msgid "Right"
-msgstr "Derecha"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
+msgid "Completion Character:"
+msgstr "Carácter de autocompletado"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:56
-msgid "Show Advanced Settings"
-msgstr "Mostrar configuraciones avanzadas"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1112
+msgid "Command Character:"
+msgstr "Carácter de órdenes:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:57
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:196
-msgid "Show Password"
-msgstr "Mostrar Contraseña:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1135
+msgid "Command History Size:"
+msgstr "Tamaño historial de órdenes:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:58
-msgid "Show Smuxi in the messaging menu"
-msgstr "Mostrar Smuxi en el Menú de Mensajería"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1160
+msgid "Bash-Style Completion"
+msgstr "Autocompletado estilo Bash"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:59
-msgid "Show always"
-msgstr "Mostrar siempre"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1172
+msgid "<b> Entry Field </b>"
+msgstr "<b> Campo de entrada </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:60
-msgid "Show notification popups"
-msgstr "Mostrar notificaciones emergentes"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1181
+msgid "Input"
+msgstr "Entrada"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:61
-msgid "Show when window is closed"
-msgstr "Mostrar cuando la ventana se cierra"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1202
+msgid "Nick Colors"
+msgstr "Colores de nick"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:62
-msgid "Show when window is minimized"
-msgstr "Mostrar cuando la ventana se minimiza"
+msgid "<b> Person List Position </b>"
+msgstr "<b> Posición de lista de personas </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:63
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:398
-msgid "Smuxi - Preferences"
-msgstr "Smuxi - Preferencias"
+msgid "Override"
+msgstr "Anular"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:64
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerDialog.cs:18
-msgid "Smuxi - Server"
-msgstr "Smuxi - Servidor"
+msgid "<b> Font </b>"
+msgstr "<b> Tipografía </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:65
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:820
-msgid "Strip Colors"
-msgstr "Ocultar Colores"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1315
+msgid "<b> Topic Position </b>"
+msgstr "<b> Posición del topic </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:66
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:859
-msgid "Strip Formattings"
-msgstr "Ocultar Formatos"
+msgid "Foreground"
+msgstr "Frente"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:67
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:899
-msgid "Strip UTF-8"
-msgstr "Ocultar UTF-8"
+msgid "Background"
+msgstr "Fondo"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:68
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1214
-msgid "Tabs"
-msgstr "Pestañas"
-
-#: ../glade/smuxi-frontend-gnome.glade.h:69
-msgid "The nickname to use. You can specify extra nicknames (separated by spaces) which will be used as fallbacks when the first choice is not available. By default $nick_ and $nick__ will be used as fallbacks."
-msgstr "El apodo a usar. Puede especificar apodos extras (separados por espacios) que serán usados como segunda opción cuando la primera no está disponible. Por defecto $nick_ y $nick__ serán usados como segunda opción."
+msgid "<b> Color </b>"
+msgstr "<b> Color </b>"
 
+#. This is a setting for character based line wrapping vs word based when
+#. showing messages
 #: ../glade/smuxi-frontend-gnome.glade.h:70
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:718
-msgid "Timestamp Format:"
-msgstr "Formato de Marca de Tiempo:"
+msgid "_Wrap Mode:"
+msgstr "_Modo de alineación"
 
-#. Container child vbox6.Gtk.Box+BoxChild
-#. Container child vbox11.Gtk.Box+BoxChild
 #: ../glade/smuxi-frontend-gnome.glade.h:71
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:935
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:959
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1412
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1438
-msgid "Top"
-msgstr "Arriba"
+msgid "<b> Chat </b>"
+msgstr "<b> Chat </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:72
-msgid "Type:"
-msgstr "Escribir:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1466
+msgid "Highlight words:"
+msgstr "Palabras resaltadas:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:73
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:507
-msgid "Username:"
-msgstr "Usuario:"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1490
+msgid "Beep on highlight"
+msgstr "Beep al resaltar"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:74
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1873
-msgid "_Filters"
-msgstr "_Filtros"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1502
+msgid "<b> Highlighting </b>"
+msgstr "<b> Resaltado </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:75
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1715
-msgid "_Interface"
-msgstr "_Interfaz"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1514
+msgid "Output"
+msgstr "Salida"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:76
-msgid "_Logging"
-msgstr "_Inicio de sesión"
+msgid "Enable"
+msgstr "Habilitar"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:77
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1781
-msgid "_Servers"
-msgstr "_Servidores"
+msgid "Show always"
+msgstr "Mostrar siempre"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:78
+msgid "Show when window is minimized"
+msgstr "Mostrar cuando se minimice la ventana"
 
-#. This is a setting for character based line wrapping vs word based when
-#. showing messages
 #: ../glade/smuxi-frontend-gnome.glade.h:79
-msgid "_Wrap Mode:"
-msgstr "_Modo Caret"
+msgid "Show when window is closed"
+msgstr "Mostrar cuando se cierre la ventana"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:80
-msgid ""
-"ss = seconds\n"
-"mm = minutes\n"
-"hh = hours (01 - 12)\n"
-"HH = hours (00 - 23)\n"
-"tt = AM/PM\n"
-"\n"
-"dd = day\n"
-"MM = month\n"
-"yy/yyyy = year"
-msgstr ""
-"ss = segundos\n"
-"mm = minutos\n"
-"hh = hora (1 - 12)\n"
-"HH = hora (0 - 23)\n"
-"tt = AM/PM\n"
-"\n"
-"dd = día\n"
-"MM = mes\n"
-"yy/yyyy = año"
+msgid "<b> Notification Area Icon </b>"
+msgstr "<b> Icono del área de notificación </b>"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:81
+msgid "Show Smuxi in the messaging menu"
+msgstr "Mostrar Smuxi en el menú de mensajería"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:82
+msgid "<b>Messaging Menu</b>"
+msgstr "<b>Menú de mensajería</b>"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:83
+msgid "Show notification popups"
+msgstr "Mostrar notificaciones emergentes"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:84
+msgid "<b>Notification Popups</b>"
+msgstr "<b>Notificaciones emergentes</b>"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:85
+msgid "Notification"
+msgstr "Notificación"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:86
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1523
+msgid "_Interface"
+msgstr "_Interfaz"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:87
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1589
+msgid "_Servers"
+msgstr "_Servidores"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:88
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1681
+msgid "_Filters"
+msgstr "_Filtros"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:89
+msgid "Enabled"
+msgstr "Habilitado"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:90
+msgid "Log Filtered Messages"
+msgstr "Registrar mensajes filtrados"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:91
+msgid "_Logging"
+msgstr "_Registros"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:92
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerDialog.cs:16
+msgid "Smuxi - Server"
+msgstr "Smuxi - Servidor"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:93
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:209
+msgid "Automatically connect to server at startup"
+msgstr "Conectar automáticamente al servidor al iniciar"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:94
+msgid "Protocol:"
+msgstr "Protocolo:"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:95
+msgid "Network:"
+msgstr "Red:"
+
+#: ../glade/smuxi-frontend-gnome.glade.h:96
+msgid "Hostname:"
+msgstr "Nombre del equipo:"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:1
-msgid "Chat with other people on IRC"
-msgstr "Charla con otras personas en IRC"
+msgid "Smuxi"
+msgstr "Smuxi"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:2
 msgid "IRC Chat"
-msgstr "IRC Chat"
+msgstr "Chat IRC"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:3
 msgid "Smuxi IRC Client"
 msgstr "Cliente IRC Smuxi"
 
-#: ../src/Frontend-GNOME/AboutDialog.cs:58
+#: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:4
+msgid "Chat with other people on IRC"
+msgstr "Charla con otras personas en IRC"
+
+#: ../src/Frontend-GNOME/AboutDialog.cs:66
 msgid "translator-credits"
-msgstr "Juan Miguel Carrero <streinleght at gmail.com>"
+msgstr "Juan Miguel Carrero <streinleght at gmail.com>,\nMatías Bellone <matiasbellone+l10n at gmail.com>"
 
-#: ../src/Frontend-GNOME/AboutDialog.cs:61
+#: ../src/Frontend-GNOME/AboutDialog.cs:73
 msgid "Smuxi Website"
-msgstr "Web de Smuxi"
+msgstr "Sitio web de Smuxi"
 
-#: ../src/Frontend-GNOME/CrashDialog.cs:44
+#: ../src/Frontend-GNOME/CrashDialog.cs:46
 msgid "Oops, I did it again..."
-msgstr "Opps, lo hice de nuevo..."
+msgstr "Perdón, lo hice de nuevo..."
 
-#: ../src/Frontend-GNOME/CrashDialog.cs:57
+#: ../src/Frontend-GNOME/CrashDialog.cs:59
 msgid "Smuxi crashed because an unhandled exception was thrown!"
-msgstr "Smuxi ha fallado porque una excepción incontrolada ocurrió! "
+msgstr "¡Falló Smuxi porque ocurrió una excepción inesperada!"
 
-#: ../src/Frontend-GNOME/CrashDialog.cs:61
+#: ../src/Frontend-GNOME/CrashDialog.cs:63
 msgid "Here is the stacktrace, please report this bug!"
-msgstr "Aquí esta el stacktrace , por favor reporta este fallo!"
+msgstr "Aquí esta la traza de pila ¡reporte este fallo por favor!"
 
-#: ../src/Frontend-GNOME/CrashDialog.cs:81
+#: ../src/Frontend-GNOME/CrashDialog.cs:83
 msgid "_Report Bug"
-msgstr "_Reportar Error"
+msgstr "_Reportar fallo"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:61
-msgid "Engine Manager"
-msgstr "Gestor de Motor"
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:66
+msgid "Engine not found."
+msgstr "No se encontró el motor."
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:68
-msgid "_Connect"
-msgstr "_Conectar"
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:81
+msgid "Engine Manager"
+msgstr "Gestor de motor"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:84
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:100
 msgid "Select which Smuxi engine you want to connect to"
 msgstr "Seleccione a qué motor Smuxi desea conectarse"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:90
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:106
 msgid "Engine:"
 msgstr "Motor:"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:116
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:176
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:353
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:117
+msgid "Use Low Bandwidth Mode"
+msgstr "Utilizar modo de bajo ancho de banda"
+
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:141
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:201
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:383
 msgid "Local Engine"
-msgstr "Motor Local:"
+msgstr "Motor local:"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:168
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:193
 msgid "Please select an engine!"
-msgstr "Seleccione un motor por favor!"
+msgstr "¡Seleccione un motor!"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:189
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:219
 #, csharp-format
 msgid "Your frontend version ({0}) does not match the engine version ({1})!"
-msgstr "Su versión de frontend ({0}) no corresponde a la versión del motor ({1})!"
+msgstr "¡Su versión de interfaz ({0}) no corresponde a la versión del motor ({1})!"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:216
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:246
 msgid "An error occurred while connecting to the engine!"
-msgstr "Se ha producido un error al conectar al motor!"
+msgstr "¡Ocurrió un error durante la conexión al motor!"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:217
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:247
 #, csharp-format
 msgid "Engine URL: {0}"
-msgstr "Dirección Motor: {0}"
+msgstr "URL del motor: {0}"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:220
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:250
 #, csharp-format
 msgid "Error: {0}"
 msgstr "Error: {0}"
 
-#: ../src/Frontend-GNOME/EngineManagerDialog.cs:290
+#: ../src/Frontend-GNOME/EngineManagerDialog.cs:320
 #, csharp-format
 msgid "Are you sure you want to delete the engine \"{0}\"?"
-msgstr "Estas seguro de que quieres borrar el motor \"{0}\"?"
+msgstr "¿Seguro que desea borrar el motor «{0}»?"
 
-#: ../src/Frontend-GNOME/Entry.cs:421
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
-msgstr "Va a pegar {0} líneas. Desea continuar?"
+msgstr "Va a pegar {0} líneas ¿desea continuar?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:524
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
-msgstr "Comandos Frontend"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:222
-msgid "_File"
-msgstr "_Fichero"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:238
-msgid "_Server"
-msgstr "_Servidor"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:242
-msgid "_Quick Connect"
-msgstr "Conexión _Rapida"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:253
-msgid "_Manage"
-msgstr "_Administrar"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:260
-msgid "_Chat"
-msgstr "_Chat"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:264
-msgid "Open / Join Chat"
-msgstr "Abrir / Unirse a Chat"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:269
-msgid "_Find Group Chat"
-msgstr "_Encontrar Salas Chat"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:274
-msgid "C_lear All Activity"
-msgstr "Eliminar Toda Actividad"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:281
-msgid "_Next Chat"
-msgstr "_Siguiente Chat"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:291
-msgid "_Previous Chat"
-msgstr "_Chat Anterior"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:341
-msgid "Open Log"
-msgstr "Abrir Registro"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:355
-msgid "_Engine"
-msgstr "_Motor"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:359
-msgid "_Use Local Engine"
-msgstr "_Usar Motor Local"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:365
-msgid "_Add Remote Engine"
-msgstr "_Añadir Motor Remoto"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:370
-msgid "_Switch Remote Engine"
-msgstr "_Cambiar Motor Remoto"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:377
-msgid "_View"
-msgstr "_Ver"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:381
-msgid "_Caret Mode"
-msgstr "_Modo Caret"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:389
-msgid "_Browse Mode"
-msgstr "_Modo examinar"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:403
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:586
-msgid "Show _Menubar"
-msgstr "Mostrar _Barra de menú"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:430
-msgid "_Help"
-msgstr "_Ayuda"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:691
-#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:225
-msgid "Unable to add server: "
-msgstr "Imposible añadir el servidor: "
-
-#: ../src/Frontend-GNOME/MainWindow.cs:742
-#, csharp-format
-msgid "Unknown ChatType: {0}"
-msgstr "Comando desconocido: {0}"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:971
-msgid ""
-"Switching to local engine will disconnect you from the current engine!\n"
-"Are you sure you want to do this?"
-msgstr ""
-"Cambiar al motor local te desconectará del engine actual!\n"
-"¿Estás seguro de que quieres hacer ésto?"
-
-#: ../src/Frontend-GNOME/MainWindow.cs:1013
-msgid ""
-"Switching the remote engine will disconnect you from the current engine!\n"
-"Are you sure you want to do this?"
-msgstr ""
-"Cambiar al motor remoto te desconectará del engine actual!\n"
-"¿Estás seguro de que quieres hacer ésto?"
+msgstr "Órdenes de interfaz"
 
 #: ../src/Frontend-GNOME/NotImplementedMessageDialog.cs:40
 msgid "Sorry, not implemented yet!"
-msgstr "Lo siento , no está aún implementado!"
+msgstr "Lo siento, ¡aún no está implementado!"
 
 #. fill ListStore
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:179
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:185
 msgid "Character"
-msgstr "Carácter de Comandos:"
+msgstr "Carácter"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:180
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:186
 msgid "Word"
 msgstr "Palabra"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:198
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:203
+msgid "Volatile"
+msgstr "Volátil"
+
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:205
+msgid "Persistent"
+msgstr "Persistente"
+
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:228
 msgid "No Proxy"
 msgstr "Sin proxy"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:212
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:139
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:230
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:326
+msgid "System Default"
+msgstr "Predeterminado del sistema"
+
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:244
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:140
 msgid "Connection"
 msgstr "Conexión"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:216
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:248
 msgid "Interface"
 msgstr "Interfaz"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:220
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:252
 msgid "Servers"
 msgstr "Servidores"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:227
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:259
 msgid "Filters"
-msgstr "_Filtros"
+msgstr "Filtros"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:231
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:263
 msgid "Logging"
-msgstr "Inicio de sesión"
+msgstr "Registros"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:281
-msgid "System Default"
-msgstr "Sistema por defecto"
-
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:588
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "El campo Nick(s) no debe estar vacío."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:748
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
-msgstr "Expresión regular inválida: '{0}'. Razón: {1}"
+msgstr "Expresión regular para resaltado inválida: «{0}». Razón: {1}"
 
-#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:69
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:105
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:271
+#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:81
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:106
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:265
 msgid "Name"
 msgstr "Nombre"
 
-#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:74
+#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:86
 msgid "Topic"
 msgstr "Topic"
 
-#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:102
+#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:115
 msgid ""
 "Searching for group chats without a filter is not recommended.  This may take a while, or may not work at all.\n"
 "Do you wish to continue?"
-msgstr ""
-"Buscar un grupo de canales sin filtrar no se recomienda.  Esto puede tardar un rato, o puede no funcionar.\n"
-"¿Desea continuar?"
+msgstr "No se recomienda buscar chats grupales sin un filtro. Esto puede tardar bastante o puede no funcionar.\n¿Desea continuar?"
 
-#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:143
+#: ../src/Frontend-GNOME/FindGroupChatDialog.cs:156
 msgid "Error while fetching the list of group chats from the server."
-msgstr "Se ha producido un error mientras se descargaba la lista salas del servidor."
+msgstr "Ocurrió un error durante la carga de la lista de chats grupales del servidor."
+
+#: ../src/Frontend-GNOME/Frontend.cs:401
+msgid "Disconnected from engine."
+msgstr "Desconectado del motor."
 
-#: ../src/Frontend-GNOME/Frontend.cs:399
+#: ../src/Frontend-GNOME/Frontend.cs:443
+#, csharp-format
+msgid "Reconnecting to engine... (attempt {0})"
+msgstr "Reconectando al motor... (intento {0})"
+
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Motivo: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:469
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
-msgstr ""
-"El frontend ha perdido la conexión con el servidor.\n"
-"¿Desea volver a conectar?"
+msgstr "La interfaz perdió la conexión con el servidor.\n¿Desea volver a conectarse ahora?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:484
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
-msgstr ""
-"La reconexión con el servidor ha fallado.\n"
-"¿Desea volver a intentarlo?"
+msgstr "Falló la reconexión con el servidor.\n¿Desea volver a intentarlo?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:585
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
-msgstr ""
-"El servidor ha perdido la conexión con el frontend.\n"
-" ¿Quieres reconectar ahora?"
+msgstr "El servidor perdió la conexión con la interfaz.\n¿Desea reconectar ahora?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:229
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Mostrar"
 
-#: ../src/Frontend-GNOME/QuickConnectDialog.cs:62
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:238
+#: ../src/Frontend-GNOME/QuickConnectDialog.cs:58
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:233
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:70
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: ../src/Frontend-GNOME/QuickConnectDialog.cs:63
+#: ../src/Frontend-GNOME/QuickConnectDialog.cs:59
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:71
 msgid "Hostname"
-msgstr "Nombre del Host"
+msgstr "Nombre del equipo"
 
-#: ../src/Frontend-GNOME/QuickConnectDialog.cs:166
+#: ../src/Frontend-GNOME/QuickConnectDialog.cs:162
 msgid "Unable to load server: "
-msgstr "Imposible cargar el servidor:"
+msgstr "No se pudo cargar el servidor:"
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:54
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:244
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:239
 msgid "Person / Private"
 msgstr "Persona / Privado"
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:55
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:245
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:240
 msgid "Group / Public"
 msgstr "Grupo / Público"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:70
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:71
 msgid "Engine Assistant - Smuxi"
-msgstr "Smuxi - Asistente de Motores"
+msgstr "Smuxi - Asistente de motores"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:92
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:93
 msgid "Add Smuxi Engine"
-msgstr "Añadir Motor  a Smuxi"
+msgstr "Agregar motor a Smuxi"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:94
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:95
 msgid "Edit Smuxi Engine"
-msgstr "Editar Motor de Smuxi"
+msgstr "Editar motor de Smuxi"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:203
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:204
 msgid "Credentials"
 msgstr "Credenciales"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:265
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:284
 msgid "Now you can use the Smuxi Engine"
-msgstr "Ya puedes usar el Motor Smuxi"
+msgstr "Ahora puede utilizar el motor de Smuxi"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:268
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:287
 msgid "Thank you"
 msgstr "Gracias"
 
-#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:285
-msgid "An engine with this name already exists! Please specify a different one."
-msgstr "Un motor con ese nombre ya existe. Por favor, especifique uno diferente."
+#: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:304
+msgid ""
+"An engine with this name already exists! Please specify a different one."
+msgstr "¡Ya existe un motor con ese nombre! Especifique uno diferente."
+
+#: ../src/Frontend-GNOME/Views/JoinWidget.cs:89
+msgid "Enter which chat to join"
+msgstr "Ingrese el chat al que desea entrar"
+
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
+msgid "About Smuxi"
+msgstr "Sobre Smuxi"
+
+#. TODO: add cmd+, accelerator
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
+msgid "Preferences"
+msgstr "Preferencias"
+
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
+#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
+msgid "Unable to add server: "
+msgstr "No se pudo agregar el servidor: "
+
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
+msgid ""
+"Switching to local engine will disconnect you from the current engine!\n"
+"Are you sure you want to do this?"
+msgstr "¡Cambiar al motor local lo desconectará del motor actual!\n¿Seguro que desea continuar?"
+
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
+msgid ""
+"Switching the remote engine will disconnect you from the current engine!\n"
+"Are you sure you want to do this?"
+msgstr "¡Cambiar al motor remoto lo desconectará del motor actual!\n¿Seguro que desea continuar?"
+
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
+#, csharp-format
+msgid "Day changed from {0} to {1}"
+msgstr "Cambió el día de {0} a {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:198
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
-msgstr "El día ha cambiado a {0}"
+msgstr "Cambió el día a {0}"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:123
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:133
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:120
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:130
 #, csharp-format
 msgid "Invalid filter regex: '{0}'. Reason: {1}"
-msgstr "Filtro de expresión regular inválido: '{0}'. Razón: {1}"
+msgstr "Expresión regularde filtro inválida: «{0}». Razón: {1}"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:200
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:197
 msgid "Are you sure you want to delete the selected filter?"
-msgstr "¿Está seguro de querer borrar el filtro seleccionado?"
+msgstr "¿Seguro que desea borrar el filtro seleccionado?"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:246
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:241
 msgid "Protocol / Server"
 msgstr "Protocolo / Servidor"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:253
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:248
 msgid "Chat Type"
-msgstr "Escribir Chat"
+msgstr "Tipo de chat"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:287
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:281
 msgid "Normal"
 msgstr "Normal"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:288
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:282
 msgid "Event"
 msgstr "Evento"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:295
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:289
 msgid "Type"
-msgstr "_Tipo:"
+msgstr "Tipo:"
 
-#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:321
+#: ../src/Frontend-GNOME/Views/FilterListWidget.cs:314
 msgid "Pattern"
 msgstr "Patrón"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:242
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
+msgid "Low Bandwidth Mode is active: no messages synced."
+msgstr "Modo de bajo ancho de banda activado: no se sincronizaron mensajes."
+
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
+msgid "Show _Menubar"
+msgstr "Mostrar barra de men_ú"
+
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
-msgstr "Recuperando la lista de usuario para {0}"
+msgstr "Obteniendo la lista de usuarios para {0}"
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:289
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "hecho."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:304
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Persona"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:68
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
+msgid "Reconnect"
+msgstr "Reconectar"
+
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
-msgstr ""
-"Cerrar el protocolo también cerrará todos los canales abiertos que estés conectado!\n"
-"¿Estás seguro de querer hacer ésto?"
+msgstr "¡Cerrar el protocolo también cerrará todos los chats abiertos en él!\n¿Seguro que desea continuar?"
 
-#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:187
+#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:189
 msgid "Are you sure you want to delete the selected server?"
-msgstr "¿Estás seguro de que quieres borrar el servidor seleccionado?"
+msgstr "¿Seguro que desea borrar el servidor seleccionado?"
 
-#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:243
-#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:277
+#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:245
+#: ../src/Frontend-GNOME/Preferences/ServerListView.cs:279
 msgid "Unable to edit server: "
 msgstr "No se puede editar el servidor:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:34
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:24
 msgid "Find"
 msgstr "Buscar"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:54
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:44
 msgid "_Search for:"
 msgstr "_Buscar:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:83
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:73
 msgid "_Match Case"
 msgstr "_Coincidir mayúsculas y minúsculas"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:95
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:85
 msgid "Search _Backwards"
 msgstr "Buscar _hacia atrás"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:107
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:97
 msgid "_Wrap Around"
-msgstr "_Envolver"
+msgstr "_Desde el principio"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:120
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:110
 msgid "Use _Regular Expressions"
-msgstr "Usar _Expresion Regular"
+msgstr "Utilizar e_xpresion regular"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:32
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:23
 msgid "Smuxi - Find Group Chat"
-msgstr "Smuxi- Buscar Grupos de Chat"
+msgstr "Smuxi - Buscar chat grupal"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:56
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:79
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:47
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:73
 msgid "_Name:"
 msgstr "_Nombre:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.QuickConnectDialog.cs:24
-msgid "Smuxi - Quick Connect"
-msgstr "Smuxi - Conexión Rápida"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.JoinWidget.cs:69
+msgid "Join"
+msgstr "Entrar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:55
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:56
+msgid "_Smuxi"
+msgstr "_Smuxi"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:58
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:59
+msgid "_Server"
+msgstr "_Servidor"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:61
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:62
+msgid "_Chat"
+msgstr "_Chat"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:64
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:65
+msgid "_Engine"
+msgstr "_Motor"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:67
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:68
+msgid "_View"
+msgstr "_Ver"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:70
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:71
+msgid "_Help"
+msgstr "_Ayuda"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:73
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:75
+msgid "Connect"
+msgstr "Conectar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:77
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:79
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:147
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:148
+msgid "Open Log"
+msgstr "Abrir registro"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:87
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:88
+msgid "_Preferences"
+msgstr "_Preferencias"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:90
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:91
+msgid "_Quit"
+msgstr "_Salir"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:487
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:93
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:94
+msgid "_Connect"
+msgstr "_Conectar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:96
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:97
+msgid "_Add"
+msgstr "_Agregar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:99
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:100
+msgid "_Manage"
+msgstr "_Gestionar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:102
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:103
+msgid "_Open / Join Chat"
+msgstr "Abrir / _Entrar a chat"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:105
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:106
+msgid "_Find Group Chat"
+msgstr "_Buscar chat grupal"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:108
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:109
+msgid "C_lear All Activity"
+msgstr "_Eliminar toda actividad"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:111
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:112
+msgid "_Next Chat"
+msgstr "Chat siguie_nte"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:114
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:115
+msgid "_Previous Chat"
+msgstr "Chat _anterior"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:117
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:118
+msgid "_Close"
+msgstr "_Cerrar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:120
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:121
+msgid "_Use Local Engine"
+msgstr "Utilizar motor _local"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:123
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:124
+msgid "_Add Remote Engine"
+msgstr "Agregar motor _remoto"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:126
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:127
+msgid "Switch Remote Engine"
+msgstr "Cambiar motor remoto"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:129
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:130
+msgid "_Caret Mode"
+msgstr "Mo_do de alineación"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:132
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:133
+msgid "_Browse Mode"
+msgstr "Modo de e_xaminación"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:138
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:139
+msgid "Show _Statusbar"
+msgstr "Mostrar _barra de estado"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:141
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:142
+msgid "_Fullscreen"
+msgstr "_Pantalla completa"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:144
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:145
+msgid "_About"
+msgstr "_Acerca de"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:150
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:152
+msgid "Find Group Chat"
+msgstr "Buscar chat grupal"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:154
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:155
+msgid "_Website"
+msgstr "Sitio _web"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:157
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:158
+msgid "Show _Toolbar"
+msgstr "Mostrar barra de _herramientas"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.QuickConnectDialog.cs:19
+msgid "Smuxi - Connect"
+msgstr "Smuxi - Connectar"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:206
+msgid "Smuxi - Preferences"
+msgstr "Smuxi - Preferencias"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:295
 msgid "Nicknames:"
 msgstr "Nicks:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1622
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Pestañas"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
-msgstr "<b> Posición Lista de Usuarios </b>"
+msgstr "<b> Posición en lista de usuarios </b>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1633
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1441
 msgid "<b> Channel </b>"
 msgstr "<b> Canal </b>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1844
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1652
 msgid "<b>Channel Filters</b>"
-msgstr "<b>Filtro de canales</b>"
+msgstr "<b>Filtros de canales</b>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1861
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1669
 msgid "<b>User Filters</b>"
-msgstr "<b>Filtro de usuarios</b>"
+msgstr "<b>Filtros de usuarios</b>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:56
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:42
 msgid "Use _SSH Tunnel"
-msgstr "Usar Tunel _SSH"
+msgstr "Utilizar túnel _SSH"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:70
-msgid "<span size=\"small\">Enables the use of SSH for the connection.  This has a small performance impact, but is more secure and required when using NAT or port-based firewalls</span>"
-msgstr "<span size=\"small\">Permite el uso de SSH para la conexión. Esto conlleva a una pequeña bajada de rendimiento , pero se aumenta la seguridad y es un requisito para el uso de NAT o un cortafuegos </span>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:56
+msgid ""
+"<span size=\"small\">Enables the use of SSH for the connection.  This has a "
+"small performance impact, but is more secure and required when using NAT or "
+"port-based firewalls</span>"
+msgstr "<span size=\"small\">Permite el uso de SSH para la conexión. Esto conlleva a una pequeña baja en el rendimiento , pero se aumenta la seguridad y es un requisito cuando utiliza NAT o un cortafuegos basado en puertos</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:149
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:135
 msgid "SSH _Host:"
 msgstr "_Servidor SSH:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:160
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:146
 msgid "<span size=\"small\">DNS or IP address and port of the SSH server</span>"
 msgstr "<span size=\"small\">DNS o dirección IP y puerto del servidor SSH</span>"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:159
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:173
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:187
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:155
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:129
 msgid "_Port:"
-msgstr "_Puerto"
+msgstr "_Puerto:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:200
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:186
 msgid "<span size=\"small\">DNS or IP address and port of the Smuxi server</span>"
 msgstr "<span size=\"small\">DNS o dirección IP y puerto del servidor Smuxi</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:213
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:199
 msgid "_Smuxi Host:"
 msgstr "_Servidor Smuxi:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:68
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:52
 msgid "_SSH Username: (optional)"
-msgstr "_Usuario SSH: (opcional)"
+msgstr "Nombre de _usuario SSH: (opcional)"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:91
-msgid "<span size=\"small\">Username which will be used to log into the SSH server</span>"
-msgstr "<span size=\"small\">Usuario que sere usado para logear en el servidor SSH</span>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:75
+msgid ""
+"<span size=\"small\">Username which will be used to log into the SSH "
+"server</span>"
+msgstr "<span size=\"small\">Nombre de usuario para iniciar sesión en el servidor SSH</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:111
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:95
 msgid "_SSH Password: (optional)"
 msgstr "Contraseña _SSH: (opcional)"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:135
-msgid "<span size=\"small\">Password which will be used to log into the SSH server. The password is optional if SSH key authorization is used (via Pageant from the PuTTY tools).</span>"
-msgstr "<span size=\"small\">Contraseña que puede ser usada para iniciar sesión en el servidor SSH. La contraseña es opcional si la clave de autorización SSH es usada (via Pageant desde las utilidades de PuTTy).</span>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:119
+msgid ""
+"<span size=\"small\">Password which will be used to log into the SSH server."
+" The password is optional if SSH key authorization is used (see "
+"below).</span>"
+msgstr "<span size=\"small\">Contraseña para iniciar sesión el servidor SSH. La contraseña es opcional utiliza una clave SSH (revise más abajo).</span>"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:140
+msgid "_SSH Keyfile: (optional)"
+msgstr "Archivo de claves _SSH: (opcional)"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:156
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:214
+#. Container child vbox17.Gtk.Box+BoxChild
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:148
+msgid "Select a File"
+msgstr "Seleccione un archivo"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:161
+msgid ""
+"<span size=\"small\">SSH private keyfile which will be used to log into the "
+"SSH server</span>"
+msgstr "<span size=\"small\">Archivo privaod de claves SSH para iniciar sesión en el servidor SSH</span>"
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:181
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:188
 msgid "_Username:"
-msgstr "_Usuario:"
+msgstr "Nombre de _usuario:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:179
-msgid "<span size=\"small\">Username which will be used to log into the Smuxi server</span>"
-msgstr "<span size=\"small\">Usuario que sere usado para logear en el servidor Smuxi</span>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:204
+msgid ""
+"<span size=\"small\">Username which will be used to log into the Smuxi "
+"server</span>"
+msgstr "<span size=\"small\">Nombre de usuario para iniciar sesión en el servidor Smuxi</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:199
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:113
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:224
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:87
 msgid "_Password:"
 msgstr "_Contraseña:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:223
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:248
 msgid "<span size=\"small\">Password of the user</span>"
 msgstr "<span size=\"small\">Contraseña del usuario</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:243
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:268
 msgid "_Verify Password:"
-msgstr "_Verifica Contraseña:"
+msgstr "_Verificar contraseña:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:267
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:292
 msgid "<span size=\"small\">Repeat the password for verification</span>"
-msgstr "<span size=\"small\">Repetir contraseña para verificación</span>"
+msgstr "<span size=\"small\">Repita la contraseña para verificación</span>"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantIntroWidget.cs:19
 msgid ""
@@ -988,112 +1164,62 @@ msgid ""
 "You need to enter some information before you can use the engine.\n"
 "\n"
 "Click \"Forward\" to begin."
-msgstr ""
-"Bienvenido al asistente de configuración del motor de Smuxi.\n"
-"Necesita introducir alguna información antes de poder utilizar el motor.\n"
-"\n"
-"Haga click en \"Avanzar\" para empezar."
+msgstr "Bienvenido al asistente de configuración del motor de Smuxi.\nNecesita ingresar alguna información antes de poder utilizar el motor.\n\nPulse en «Avanzar» para empezar."
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:44
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:36
 msgid "_Engine Name:"
-msgstr "Nombre del _Motor:"
+msgstr "Nombre del _motor:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:67
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:59
 msgid "<span size=\"small\">Profile name of the new engine</span>"
-msgstr "<span size=\"small\">Nombre del perfil del nuevo motor</span>"
+msgstr "<span size=\"small\">Nombre del perfil para el nuevo motor</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:88
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:80
 msgid "_Default Engine:"
-msgstr "Motor por _Defecto:"
+msgstr "Motor _predeterminado:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:99
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:91
 msgid "Use as new default engine"
-msgstr "Usar como motor por defecto"
+msgstr "Utilizar como nuevo motor predeterminado"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:112
-msgid "<span size=\"small\">If enabled, the current engine will be the default next time Smuxi is started</span>"
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:104
+msgid ""
+"<span size=\"small\">If enabled, the current engine will be the default next"
+" time Smuxi is started</span>"
 msgstr "<span size=\"small\">Si está habilitada, el motor actual será utilizado como predeterminado por Smuxi la próxima vez que inicie</span>"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:26
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:20
 msgid "Smuxi - Open Chat"
-msgstr "Smuxi - Chat Abierto"
+msgstr "Smuxi - Chat abierto"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:69
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:63
 msgid "_Type:"
 msgstr "_Tipo:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:80
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:54
 msgid "_Hostname:"
-msgstr "Nombre del _Host:"
+msgstr "Nombre del _equipo:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:101
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:75
 msgid "_Network:"
 msgstr "_Red:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:224
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:198
 msgid "_Protocol:"
 msgstr "_Protocolo:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:248
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:222
 msgid "Use Encryption"
 msgstr "Usar cifrado"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:260
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:234
 msgid "Validate Server Certificate"
 msgstr "Validar el certificado del servidor."
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:280
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:254
 msgid "_On Connect Commands:"
-msgstr "_Comandos al conectar:"
+msgstr "_Órdenes al conectar:"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:291
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:265
 msgid "_Ignore Commands"
-msgstr "_Ignorar comandos"
-
-#~ msgid "German"
-#~ msgstr "Alemán"
-
-#~ msgid "Spanish"
-#~ msgstr "Español"
-
-#~ msgid "British English"
-#~ msgstr "Inglés Británico"
-
-#~ msgid "French"
-#~ msgstr "Francés"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "_Edit"
-#~ msgstr "_Editar"
-
-#~ msgid "Joins"
-#~ msgstr "Entradas"
-
-#~ msgid "Parts"
-#~ msgstr "Salidas"
-
-#~ msgid "Quits"
-#~ msgstr "Cierres"
-
-#~ msgid "Unknown Command: {0}"
-#~ msgstr "Comando desconocido: {0}"
-
-#~ msgid "gtk-cancel"
-#~ msgstr "gtk-cancel"
-
-#~ msgid "gtk-ok"
-#~ msgstr "gtk-ok"
-
-#~ msgid "#"
-#~ msgstr "#"
-
-#~ msgid "Syncing chat persons of {0}..."
-#~ msgstr "Sincronizando lista de usuarios de {0}..."
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid "smuxi - Preferences"
-#~ msgstr "smuxi - Preferencias"
+msgstr "_Ignorar órdenes"
diff --git a/po-Frontend-GNOME/zh_CN.po b/po-Frontend-GNOME/fa.po
similarity index 76%
copy from po-Frontend-GNOME/zh_CN.po
copy to po-Frontend-GNOME/fa.po
index ca3ca96..6f25807 100644
--- a/po-Frontend-GNOME/zh_CN.po
+++ b/po-Frontend-GNOME/fa.po
@@ -3,117 +3,117 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012-2013
+# Behrooz Amoozad <behrooz0az at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 17:50+0000\n"
-"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
+"Language: fa\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:1
 msgid "Smuxi Preferences"
-msgstr "Smuxi 偏好设置"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:2
 msgid ""
 "The nickname to use. You can specify extra nicknames (separated by spaces) "
 "which will be used as fallbacks when the first choice is not available. By "
 "default $nick_ and $nick__ will be used as fallbacks."
-msgstr "要使用的昵称。您可以指定多个昵称(用空格分隔)作为首个选项不可用时的候选项。默认使用 $昵称_ 和 $昵称__ 作为候选项。"
+msgstr "نام مستعار, میتوانید نام های مستعار اضافه ای را نیز مشخص کنید(با فاصله از هم جدا کنید) تا در زمانی که انتخاب اول در دسترس نیست استفاده شوند. به صورت پیش فرض $نام_ و $نام__ به عنوان جانشین استفاده خواهند شد."
 
 #: ../glade/smuxi-frontend-gnome.glade.h:3
 msgid "Nickname(s):"
-msgstr "昵称:"
+msgstr "نام (های) مستعار:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:4
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:315
 msgid "Username:"
-msgstr "用户名:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:5
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:338
 msgid "Realname:"
-msgstr "真名:"
+msgstr "نام حقیقی:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:6
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:359
 msgid "Encoding:"
-msgstr "编码:"
+msgstr "انکودینگ:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:7
 msgid "Automatically convert UTF-8 characters"
-msgstr "自动转换 UTF-8 字符"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:8
 msgid "<b>General</b>"
-msgstr "<b>全局</b>"
+msgstr "<b> کلی </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:9
 msgid "Type:"
-msgstr "类型:"
+msgstr "نوع:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:10
 msgid "Host:"
-msgstr "主机:"
+msgstr "میزبان:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:11
 msgid "Password:"
-msgstr "密码:"
+msgstr "رمز:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:12
 msgid "Port:"
-msgstr "端口:"
+msgstr "درگاه:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:13
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:170
 msgid "Show Password"
-msgstr "显示密码"
+msgstr "نمایش رمز"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:14
 msgid "<b>Network Proxy</b>"
-msgstr "<b>网络代理</b>"
+msgstr "<b> پراکسی شبکه </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:15
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:381
 msgid "On Connect Commands:"
-msgstr "连接时命令:"
+msgstr "دستورات زمان اتصال:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:16
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:427
 msgid "On Startup Commands:"
-msgstr "启动时命令:"
+msgstr "دستورات زمان اجرا:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:17
 msgid "<b>Global Commands</b>"
-msgstr "<b>全局命令</b>"
+msgstr "<b> فرامین عمومی </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:18
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:471
 msgid "C_onnection"
-msgstr "连接(_O)"
+msgstr "ارتباط"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:19
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:526
 msgid "Timestamp Format:"
-msgstr "时间戳格式:"
+msgstr "قالب زمان:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:20
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:546
 msgid "Buffer Lines:"
-msgstr "缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:21
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:569
 msgid "Engine Buffer Lines:"
-msgstr "引擎缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:22
 msgid ""
@@ -126,51 +126,51 @@ msgid ""
 "dd = day\n"
 "MM = month\n"
 "yy/yyyy = year"
-msgstr "ss = 秒数\nmm = 分数\nhh = 小时数 (01 - 12)\nHH = 小时数 (00 - 23)\ntt = AM/PM\n\ndd = day\nMM = month\nyy/yyyy = year"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:31
 msgid "Persistency Type:"
-msgstr "持久类型:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:32
 msgid "Volatile Buffer Lines:"
-msgstr "临时缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:33
 msgid "Persistent Buffer Lines:"
-msgstr "持久缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:34
 msgid "<b>Message Buffer</b>"
-msgstr "<b>信息缓冲</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:35
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:628
 msgid "Strip Colors"
-msgstr "去除颜色"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:36
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:667
 msgid "Strip Formattings"
-msgstr "去除格式"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:37
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:707
 msgid "Strip UTF-8"
-msgstr "去除 UTF-8"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:38
 msgid "Show Advanced Settings"
-msgstr "显示高级设置"
+msgstr "نمایش تنظیمات پیشرفته"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:39
 msgid "<b>Advanced</b>"
-msgstr "<b>高级</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:40
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:725
 msgid "General"
-msgstr "全局"
+msgstr "عمومی"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -180,7 +180,7 @@ msgstr "全局"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1220
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1246
 msgid "Top"
-msgstr "顶部"
+msgstr "بالا"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -190,7 +190,7 @@ msgstr "顶部"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1261
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1286
 msgid "Bottom"
-msgstr "底部"
+msgstr "پایین"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
@@ -200,7 +200,7 @@ msgstr "底部"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1335
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1361
 msgid "Left"
-msgstr "左边"
+msgstr "چپ"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
@@ -210,7 +210,7 @@ msgstr "左边"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1376
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1401
 msgid "Right"
-msgstr "右边"
+msgstr "راست"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -220,939 +220,942 @@ msgstr "右边"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1301
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1416
 msgid "None"
-msgstr "无"
+msgstr "هیچ"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:46
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:910
 msgid "<b> Tabs Position </b>"
-msgstr "<b> 标签位置 </b>"
+msgstr "<b> موقعیت تب ها </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:981
 msgid "Highlight"
-msgstr "高亮"
+msgstr "برجسته کردن"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:48
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:961
 msgid "Activity"
-msgstr "活动"
+msgstr "فعالیت"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:49
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:953
 msgid "No Activity"
-msgstr "无活动"
+msgstr "بدون فعالیت"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:50
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:971
 msgid "Join/Part/Mode"
-msgstr "加入/离开/模式"
+msgstr "چسبیدن/جدا شدن/حالت"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:51
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1009
 msgid "<b> Tab Colors </b>"
-msgstr "<b> 标签颜色 </b>"
+msgstr "<b> رنگ تب ها </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:52
 msgid "Automatically switch to newly opened person chats"
-msgstr "自动切换到新打开的单人聊天"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:53
 msgid "Automatically switch to newly opened group chats"
-msgstr "自动切换到新打开的群组聊天"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "标签"
+msgid "Tree"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
 msgid "Completion Character:"
-msgstr "完成字符:"
+msgstr "کاراکتر تکمیل کردن:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:56
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1112
 msgid "Command Character:"
-msgstr "命令字符:"
+msgstr "کاراکتر فرمان:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:57
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1135
 msgid "Command History Size:"
-msgstr "命令历史数:"
+msgstr "اندازه تاریخچه دستور:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1160
 msgid "Bash-Style Completion"
-msgstr "Bash 式完成"
+msgstr "تکمیل کردن مانند bash"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:59
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1172
 msgid "<b> Entry Field </b>"
-msgstr "<b> 预留字段 </b>"
+msgstr "<b> فیلد ورودی </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:60
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1181
 msgid "Input"
-msgstr "输入"
+msgstr "ورودی"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1202
 msgid "Nick Colors"
-msgstr "昵称颜色"
+msgstr "رنگ نام های مستعار"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:62
 msgid "<b> Person List Position </b>"
-msgstr "<b> 成员列表位置 </b>"
+msgstr "<b> موقعیت لیست افراد </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:63
 msgid "Override"
-msgstr "覆盖"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:64
 msgid "<b> Font </b>"
-msgstr "<b> 字体 </b>"
+msgstr "<b> قلم </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:65
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1315
 msgid "<b> Topic Position </b>"
-msgstr "<b> 主题位置 </b>"
+msgstr "<b> موقعیت تاپیک </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:66
 msgid "Foreground"
-msgstr "前景"
+msgstr "رنگ رو"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:67
 msgid "Background"
-msgstr "背景"
+msgstr "رنگ زمینه"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:68
 msgid "<b> Color </b>"
-msgstr "<b> 颜色 </b>"
+msgstr "<b> رنگ </b>"
 
 #. This is a setting for character based line wrapping vs word based when
 #. showing messages
 #: ../glade/smuxi-frontend-gnome.glade.h:70
 msgid "_Wrap Mode:"
-msgstr "_自动换行模式:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:71
 msgid "<b> Chat </b>"
-msgstr "<b> 聊天 </b>"
+msgstr "<b> چت <b/>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:72
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1466
 msgid "Highlight words:"
-msgstr "高亮单词:"
+msgstr "کلمات برجسته:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1490
 msgid "Beep on highlight"
-msgstr "高亮时鸣叫"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:74
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1502
 msgid "<b> Highlighting </b>"
-msgstr "<b> 高亮 </b>"
+msgstr "<b> برجسته نمایی </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:75
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1514
 msgid "Output"
-msgstr "输出"
+msgstr "خروجی"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:76
 msgid "Enable"
-msgstr "启用"
+msgstr "فعال کردن"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:77
 msgid "Show always"
-msgstr "总是显示"
+msgstr "همیشه نمایش بده"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:78
 msgid "Show when window is minimized"
-msgstr "当窗口最小化时显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:79
 msgid "Show when window is closed"
-msgstr "当窗口关闭时显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:80
 msgid "<b> Notification Area Icon </b>"
-msgstr "<b> 通知区域图标 </b>"
+msgstr "<b> علامت ناحیه هشدار </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:81
 msgid "Show Smuxi in the messaging menu"
-msgstr "在消息菜单中显示 Smuxi"
+msgstr "نمایش smuxi در منو پیام رسانی"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:82
 msgid "<b>Messaging Menu</b>"
-msgstr "<b>消息菜单</b>"
+msgstr "<b> منو پیغام رسانی </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:83
 msgid "Show notification popups"
-msgstr "显示通知弹出"
+msgstr "نمایش کادر های هشدار"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:84
 msgid "<b>Notification Popups</b>"
-msgstr "<b>通知弹出</b>"
+msgstr "<b> کادر های هشدار </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:85
 msgid "Notification"
-msgstr "通知"
+msgstr "هشدار"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:86
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1523
 msgid "_Interface"
-msgstr "界面(_I)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1589
 msgid "_Servers"
-msgstr "服务器(_S)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:88
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1681
 msgid "_Filters"
-msgstr "过滤器(_F)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:89
 msgid "Enabled"
-msgstr "启用"
+msgstr "فعال"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:90
 msgid "Log Filtered Messages"
-msgstr "记录经过滤的消息"
+msgstr "ثبت پیغام های فیلتر شده"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:91
 msgid "_Logging"
-msgstr "历史(_L)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:92
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerDialog.cs:16
 msgid "Smuxi - Server"
-msgstr "Smuxi - 服务器"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:209
 msgid "Automatically connect to server at startup"
-msgstr "启动时自动连接到服务器"
+msgstr "وصل شدن خودکار به سرویس دهنده هنگام شروع"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:94
 msgid "Protocol:"
-msgstr "协议:"
+msgstr "پروتوکل:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:95
 msgid "Network:"
-msgstr "网络:"
+msgstr "شبکه:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:96
 msgid "Hostname:"
-msgstr "主机名:"
+msgstr "نام میزبان:"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:1
 msgid "Smuxi"
-msgstr "Smuxi"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:2
 msgid "IRC Chat"
-msgstr "IRC 聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:3
 msgid "Smuxi IRC Client"
-msgstr "Smuxi IRC 客户端"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:4
 msgid "Chat with other people on IRC"
-msgstr "和 IRC 上的其他人聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/AboutDialog.cs:66
 msgid "translator-credits"
-msgstr "Dean Lee <xslidian+smuxi at gmail.com>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/AboutDialog.cs:73
 msgid "Smuxi Website"
-msgstr "Smuxi 网站"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:46
 msgid "Oops, I did it again..."
-msgstr "Oops,我又做了一次..."
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:59
 msgid "Smuxi crashed because an unhandled exception was thrown!"
-msgstr "Smuxi 崩溃了,因为遇到了未处理的意外!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:63
 msgid "Here is the stacktrace, please report this bug!"
-msgstr "这是 stacktrace,请报告错误!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:83
 msgid "_Report Bug"
-msgstr "报告错误(_R)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:66
 msgid "Engine not found."
-msgstr "引擎未找到。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:81
 msgid "Engine Manager"
-msgstr "引擎管理器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:100
 msgid "Select which Smuxi engine you want to connect to"
-msgstr "选择希望连接到的 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:106
 msgid "Engine:"
-msgstr "引擎:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:117
 msgid "Use Low Bandwidth Mode"
-msgstr "使用低带宽模式"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:141
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:201
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:383
 msgid "Local Engine"
-msgstr "本地引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:193
 msgid "Please select an engine!"
-msgstr "请选择一个引擎!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:219
 #, csharp-format
 msgid "Your frontend version ({0}) does not match the engine version ({1})!"
-msgstr "您的前端版本 ({0}) 与引擎版本 ({1}) 不匹配!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:246
 msgid "An error occurred while connecting to the engine!"
-msgstr "连接到引擎时出现了一个错误!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:247
 #, csharp-format
 msgid "Engine URL: {0}"
-msgstr "引擎 URL: {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:250
 #, csharp-format
 msgid "Error: {0}"
-msgstr "错误: {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:320
 #, csharp-format
 msgid "Are you sure you want to delete the engine \"{0}\"?"
-msgstr "您确实要删除引擎 \"{0}\" 吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
-msgstr "您正在粘贴 {0} 行。是否继续?"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
-msgstr "前端命令"
+msgstr ""
 
 #: ../src/Frontend-GNOME/NotImplementedMessageDialog.cs:40
 msgid "Sorry, not implemented yet!"
-msgstr "抱歉,尚未实现!"
+msgstr ""
 
 #. fill ListStore
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:185
 msgid "Character"
-msgstr "字符"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:186
 msgid "Word"
-msgstr "单词"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:203
 msgid "Volatile"
-msgstr "临时"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:205
 msgid "Persistent"
-msgstr "持久"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:228
 msgid "No Proxy"
-msgstr "无代理"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:230
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:326
 msgid "System Default"
-msgstr "系统默认"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:244
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:140
 msgid "Connection"
-msgstr "连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:248
 msgid "Interface"
-msgstr "界面"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:252
 msgid "Servers"
-msgstr "服务器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:259
 msgid "Filters"
-msgstr "过滤器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:263
 msgid "Logging"
-msgstr "历史"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
-msgstr "昵称字段不能为空。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
-msgstr "高亮正则表达式无效: '{0}'。原因: {1}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:81
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:106
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:265
 msgid "Name"
-msgstr "名称"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:86
 msgid "Topic"
-msgstr "主题"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:115
 msgid ""
 "Searching for group chats without a filter is not recommended.  This may take a while, or may not work at all.\n"
 "Do you wish to continue?"
-msgstr "不建议不用过滤器搜索群组聊天。可能要耗费一些时间,也可能无法完成搜索。\n您是否打算继续?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:156
 msgid "Error while fetching the list of group chats from the server."
-msgstr "从服务器装载群组聊天列表出错。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Frontend.cs:401
 msgid "Disconnected from engine."
-msgstr "从引擎断开连接。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Frontend.cs:443
 #, csharp-format
 msgid "Reconnecting to engine... (attempt {0})"
-msgstr "正在重新连接到引擎... (第 {0} 次尝试)"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
-msgstr "原因: {0}"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
-msgstr "前端与服务器之间的连接已丢失。\n是否希望现在重新连接?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
-msgstr "重新连接到服务器失败。\n是否重试?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
-msgstr "服务器与前端之间的连接已丢失。\n是否希望现在重新连接?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
-msgstr "显示"
+msgstr ""
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:58
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:233
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:70
 msgid "Protocol"
-msgstr "协议"
+msgstr ""
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:59
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:71
 msgid "Hostname"
-msgstr "主机名"
+msgstr ""
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:162
 msgid "Unable to load server: "
-msgstr "无法加载服务器: "
+msgstr ""
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:54
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:239
 msgid "Person / Private"
-msgstr "成员 / 私聊"
+msgstr ""
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:55
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:240
 msgid "Group / Public"
-msgstr "群组 / 公开"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:71
 msgid "Engine Assistant - Smuxi"
-msgstr "引擎助手 - Smuxi"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:93
 msgid "Add Smuxi Engine"
-msgstr "添加 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:95
 msgid "Edit Smuxi Engine"
-msgstr "编辑 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:204
 msgid "Credentials"
-msgstr "证书"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:284
 msgid "Now you can use the Smuxi Engine"
-msgstr "现在您可以使用该 Smuxi 引擎了"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:287
 msgid "Thank you"
-msgstr "谢谢您"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:304
 msgid ""
 "An engine with this name already exists! Please specify a different one."
-msgstr "已存在同名引擎! 请另外指定一个。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/JoinWidget.cs:89
 msgid "Enter which chat to join"
-msgstr "输入要加入的聊天"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
-msgstr "关于 Smuxi"
+msgstr ""
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
-msgstr "偏好设置"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
-msgstr "无法添加服务器: "
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
-msgstr "切换到本地引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
-msgstr "切换到远程引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
-msgstr "天数由 {0} 变为 {1}"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
-msgstr "日期已改为 {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:120
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:130
 #, csharp-format
 msgid "Invalid filter regex: '{0}'. Reason: {1}"
-msgstr "无效的过滤器正则表达式: '{0}'。原因: {1}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:197
 msgid "Are you sure you want to delete the selected filter?"
-msgstr "您确实要删除选中的过滤器?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:241
 msgid "Protocol / Server"
-msgstr "协议 / 服务器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:248
 msgid "Chat Type"
-msgstr "聊天类型"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:281
 msgid "Normal"
-msgstr "普通"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:282
 msgid "Event"
-msgstr "事件"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:289
 msgid "Type"
-msgstr "类型"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:314
 msgid "Pattern"
-msgstr "匹配"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
-msgstr "低带宽模式未启用: 未同步任何信息。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
-msgstr "显示菜单栏(_M)"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
-msgstr "正在检索 {0} 的用户列表..."
+msgstr ""
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
-msgstr "完成。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
-msgstr "成员"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
-msgstr "重新连接"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
-msgstr "关闭该协议将同时关闭所有连接到它的开放聊天!\n您确实希望这么做吗?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:189
 msgid "Are you sure you want to delete the selected server?"
-msgstr "您确实打算删除选中的服务器吗?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:245
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:279
 msgid "Unable to edit server: "
-msgstr "无法编辑服务器: "
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:24
 msgid "Find"
-msgstr "查找"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:44
 msgid "_Search for:"
-msgstr "搜索(_S):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:73
 msgid "_Match Case"
-msgstr "匹配大小写(_M)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:85
 msgid "Search _Backwards"
-msgstr "向上搜索(_B)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:97
 msgid "_Wrap Around"
-msgstr "全文搜索(_W)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:110
 msgid "Use _Regular Expressions"
-msgstr "使用正则表达式(_R)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:23
 msgid "Smuxi - Find Group Chat"
-msgstr "Smuxi - 查找群组聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:73
 msgid "_Name:"
-msgstr "名称(_N):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.JoinWidget.cs:69
 msgid "Join"
-msgstr "加入"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:56
 msgid "_Smuxi"
-msgstr "_Smuxi"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:59
 msgid "_Server"
-msgstr "服务器(_S)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:62
 msgid "_Chat"
-msgstr "聊天(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:64
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:65
 msgid "_Engine"
-msgstr "引擎(_E)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:67
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:68
 msgid "_View"
-msgstr "视图(_V)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:70
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:71
 msgid "_Help"
-msgstr "帮助(_H)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:75
 msgid "Connect"
-msgstr "连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:77
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:79
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:147
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:148
 msgid "Open Log"
-msgstr "打开聊天历史"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:88
 msgid "_Preferences"
-msgstr "偏好设置(_P)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:90
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:91
 msgid "_Quit"
-msgstr "退出(_Q)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:94
 msgid "_Connect"
-msgstr "连接(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:96
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:97
 msgid "_Add"
-msgstr "添加(_A)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:99
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:100
 msgid "_Manage"
-msgstr "管理(_M)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:102
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:103
 msgid "_Open / Join Chat"
-msgstr "打开(_O) / 加入聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:105
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:106
 msgid "_Find Group Chat"
-msgstr "查找群组聊天(_F)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:108
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:109
 msgid "C_lear All Activity"
-msgstr "清除所有活动(_L)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:111
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:112
 msgid "_Next Chat"
-msgstr "下一个聊天(_N)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:114
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:115
 msgid "_Previous Chat"
-msgstr "上一个聊天(_P)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:117
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:118
 msgid "_Close"
-msgstr "关闭(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:120
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:121
 msgid "_Use Local Engine"
-msgstr "使用本地引擎(_U)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:123
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:124
 msgid "_Add Remote Engine"
-msgstr "添加远程引擎(_A)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:126
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:127
 msgid "Switch Remote Engine"
-msgstr "切换远程引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:129
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:130
 msgid "_Caret Mode"
-msgstr "插入模式(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:132
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:133
 msgid "_Browse Mode"
-msgstr "浏览模式(_B)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:138
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:139
 msgid "Show _Statusbar"
-msgstr "显示状态栏(_S)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:141
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:142
 msgid "_Fullscreen"
-msgstr "全屏(_F)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:144
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:145
 msgid "_About"
-msgstr "关于(_A)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:150
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:152
 msgid "Find Group Chat"
-msgstr "查找群组聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:154
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:155
 msgid "_Website"
-msgstr "网站(_W)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:157
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:158
 msgid "Show _Toolbar"
-msgstr "显示工具栏(_T)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.QuickConnectDialog.cs:19
 msgid "Smuxi - Connect"
-msgstr "Smuxi - 连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:206
 msgid "Smuxi - Preferences"
-msgstr "Smuxi - 首选项"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:295
 msgid "Nicknames:"
-msgstr "昵称:"
+msgstr ""
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
-msgstr "<b> 用户列表位置 </b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1441
 msgid "<b> Channel </b>"
-msgstr "<b> 频道 </b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1652
 msgid "<b>Channel Filters</b>"
-msgstr "<b>频道过滤器</b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1669
 msgid "<b>User Filters</b>"
-msgstr "<b>用户过滤器</b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:42
 msgid "Use _SSH Tunnel"
-msgstr "使用 _SSH 隧道"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:56
 msgid ""
 "<span size=\"small\">Enables the use of SSH for the connection.  This has a "
 "small performance impact, but is more secure and required when using NAT or "
 "port-based firewalls</span>"
-msgstr "<span size=\"small\">为连接启用 SSH。这对性能有一定影响,但更安全,且使用 NAT 或者基于端口的防火墙时必需</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:135
 msgid "SSH _Host:"
-msgstr "SS_H 主机:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:146
 msgid "<span size=\"small\">DNS or IP address and port of the SSH server</span>"
-msgstr "<span size=\"small\">SSH 服务器的 DNS 或者 IP 地址与端口</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:159
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:173
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:129
 msgid "_Port:"
-msgstr "端口(_P):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:186
 msgid "<span size=\"small\">DNS or IP address and port of the Smuxi server</span>"
-msgstr "<span size=\"small\">Smuxi 服务器的 DNS 或者 IP 地址与端口</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:199
 msgid "_Smuxi Host:"
-msgstr "_Smuxi 主机:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:52
 msgid "_SSH Username: (optional)"
-msgstr "_SSH 用户名: (可选)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:75
 msgid ""
 "<span size=\"small\">Username which will be used to log into the SSH "
 "server</span>"
-msgstr "<span size=\"small\">用于登录 SSH 服务器的用户名</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:95
 msgid "_SSH Password: (optional)"
-msgstr "_SSH 密码: (可选)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:119
 msgid ""
 "<span size=\"small\">Password which will be used to log into the SSH server."
 " The password is optional if SSH key authorization is used (see "
 "below).</span>"
-msgstr "<span size=\"small\">将用于登录 SSH 服务器的密码。若使用了 SSH 密钥(参见下方选项),则密码可选。</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:140
 msgid "_SSH Keyfile: (optional)"
-msgstr "_SSH 密钥文件: (可选)"
+msgstr ""
 
 #. Container child vbox17.Gtk.Box+BoxChild
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:148
 msgid "Select a File"
-msgstr "选择文件"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:161
 msgid ""
 "<span size=\"small\">SSH private keyfile which will be used to log into the "
 "SSH server</span>"
-msgstr "<span size=\"small\">SSH 私钥文件将用于登录 SSH 服务器</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:181
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:188
 msgid "_Username:"
-msgstr "用户名(_U):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:204
 msgid ""
 "<span size=\"small\">Username which will be used to log into the Smuxi "
 "server</span>"
-msgstr "<span size=\"small\">将用于登录 Smuxi 服务器的用户名</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:224
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:87
 msgid "_Password:"
-msgstr "密码(_P):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:248
 msgid "<span size=\"small\">Password of the user</span>"
-msgstr "<span size=\"small\">用户密码</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:268
 msgid "_Verify Password:"
-msgstr "验证密码(_V):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:292
 msgid "<span size=\"small\">Repeat the password for verification</span>"
-msgstr "<span size=\"small\">请再次输入密码以供验证</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantIntroWidget.cs:19
 msgid ""
@@ -1160,62 +1163,62 @@ msgid ""
 "You need to enter some information before you can use the engine.\n"
 "\n"
 "Click \"Forward\" to begin."
-msgstr "欢迎使用 Smuxi 引擎配置助手。\n在您能够使用引擎之前,需要输入一些信息。\n\n点击“前进”开始。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:36
 msgid "_Engine Name:"
-msgstr "引擎名称(_E):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:59
 msgid "<span size=\"small\">Profile name of the new engine</span>"
-msgstr "<span size=\"small\">新引擎配置文件的名称</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:80
 msgid "_Default Engine:"
-msgstr "默认引擎(_D):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:91
 msgid "Use as new default engine"
-msgstr "用作新的默认引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:104
 msgid ""
 "<span size=\"small\">If enabled, the current engine will be the default next"
 " time Smuxi is started</span>"
-msgstr "<span size=\"small\">如果启用,Smuxi 下次启动时当前引擎将作为默认引擎</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:20
 msgid "Smuxi - Open Chat"
-msgstr "Smuxi - 开放聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:63
 msgid "_Type:"
-msgstr "_类型:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:54
 msgid "_Hostname:"
-msgstr "_主机名:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:75
 msgid "_Network:"
-msgstr "_网络:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:198
 msgid "_Protocol:"
-msgstr "_协议:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:222
 msgid "Use Encryption"
-msgstr "使用加密"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:234
 msgid "Validate Server Certificate"
-msgstr "验证服务器证书"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:254
 msgid "_On Connect Commands:"
-msgstr "连接时命令(_O):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:265
 msgid "_Ignore Commands"
-msgstr "忽略命令(_I)"
+msgstr ""
diff --git a/po-Frontend-GNOME/fi.po b/po-Frontend-GNOME/fi.po
index 34a90aa..ae6ae8f 100644
--- a/po-Frontend-GNOME/fi.po
+++ b/po-Frontend-GNOME/fi.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-22 12:27+0000\n"
-"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -261,9 +261,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "Siirry automaattisesti uutena avautuviin ryhmäkeskusteluihin"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Välilehdet"
+msgid "Tree"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -542,14 +541,14 @@ msgstr "Virhe: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Haluatko varmasti poistaa moottorin \"{0}\"?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Aiot liittää {0} riviä. Haluatko varmasti jatkaa?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Käyttöliittymän komennot"
 
@@ -604,11 +603,11 @@ msgstr "Suodattimet"
 msgid "Logging"
 msgstr "Loki"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Lempinimi-kenttä ei saa olla tyhjä."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "Epäkelpo korostuksen regex: '{0}'. Syy: {1}"
@@ -642,30 +641,30 @@ msgstr "Yhteys moottoriin katkaistu."
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Yhdistetään uudelleen moottoriin... (yritys {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Syy: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "Käyttöliittymä on menettänyt yhteyden palvelimeen. Haluatko yhdistää uudelleen nyt?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "Uudelleenyhdistäminen palvelimeen on epäonnistunut. Haluatko yrittää uudelleen?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "Palvelin on menettänyt yhteyden käyttöliittymään. Haluatko yhdistää uudelleen nyt?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Näytä"
 
@@ -727,38 +726,38 @@ msgstr "Tämän niminen moottori on jo olemassa! Määritä toinen nimi."
 msgid "Enter which chat to join"
 msgstr "Syötä liittyttävän keskustelun nimi"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "Tietoja Smuxista"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Asetukset"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Palvelinta ei voitu lisätä:"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Paikalliseen moottoriin vaihto katkaisee yhteytesi nykyiseen moottoriin! Haluatko varmasti tehdä tämän?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Etämoottorin vaihto katkaisee yhteyden nykyiseen moottoriin! Haluatko varmasti tehdä tämän?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Päivä vaihtui päivästä {0} päivään {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Päivä vaihtui, {0}"
@@ -797,35 +796,35 @@ msgstr "Tyyppi"
 msgid "Pattern"
 msgstr "Kuvio"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Alhaisen kaistan tila on päällä: Viestejä ei ole synkronoitu."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Näytä _valikkopalkki"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Noudetaan käyttäjälistaa {0}:lle..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "Valmis."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Henkilö"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "Yhdistä uudelleen"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1041,6 +1040,10 @@ msgstr "Smuxi - asetukset"
 msgid "Nicknames:"
 msgstr "Lempinimet:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Välilehdet"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Käyttäjälistan sijainti </b>"
diff --git a/po-Frontend-GNOME/fr.po b/po-Frontend-GNOME/fr.po
index 3172bc4..0c2cfe6 100644
--- a/po-Frontend-GNOME/fr.po
+++ b/po-Frontend-GNOME/fr.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 12:36+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-13 21:21+0000\n"
 "Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -261,9 +261,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "Ouvrir automatiquement les nouveaux chats de groupe"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Onglets"
+msgid "Tree"
+msgstr "Arbre"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -542,14 +541,14 @@ msgstr "Erreur : {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Êtes vous sûr(e) de vouloir supprimer le moteur \"{0}\" ?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Vous vous apprêtez à coller {0} lignes de texte, êtes vous sûr(e) de vouloir continuer ?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Commandes Frontend"
 
@@ -604,11 +603,11 @@ msgstr "Filtres"
 msgid "Logging"
 msgstr "Journalisation"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Le champ surnom(s) ne doit pas être vide."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "Expression régulière de surlignage invalide '{0}'. Raison : {1} "
@@ -642,30 +641,30 @@ msgstr "Déconnecté du moteur."
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Reconnexion au moteur... (essai {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Cause : {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "Le serveur a perdu la connexion a l'interface.\nVoulez-vous vous reconnecter maintenant ?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "La reconnexion au serveur a échoué.\nVoulez-vous vous reconnecter maintenant ?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "Le serveur a perdu la connexion à l'interface.\nVoulez-vous vous reconnecter maintenant ?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Afficher"
 
@@ -727,38 +726,38 @@ msgstr "Un moteur avec ce nom éxiste deja ! Veuillez en spécifier un autre."
 msgid "Enter which chat to join"
 msgstr "Entrez le nom du chat à rejoindre"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "À propos de Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Préférences"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Impossible d'ajouter le serveur :"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Changer de moteur vers le moteur local va vous déconnecter du moteur actuel !\nÊtes vous sûr(e) de vouloir continuer ?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Changer de moteur pour un moteur distant va vous déconnecter du moteur actuel !\nÊtes vous sûr(e) de vouloir continuer ?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Jour changé de {0} à {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Jour changé à {0}"
@@ -797,35 +796,35 @@ msgstr "Type :"
 msgid "Pattern"
 msgstr "Motif"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Mode faible bande passante activé : aucun message synchronisé."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Afficher la barre de _menus"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Téléchargement de la liste des utilisateurs pour {0}..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "terminé."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Personne"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "Reconnecter"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1041,6 +1040,10 @@ msgstr "Smuxi - Préférences"
 msgid "Nicknames:"
 msgstr "Surnoms :"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Onglets"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Position de la liste d'utilisateurs </b>"
diff --git a/po-Frontend-GNOME/pt_BR.po b/po-Frontend-GNOME/pt_BR.po
index 9696357..2e75ae3 100644
--- a/po-Frontend-GNOME/pt_BR.po
+++ b/po-Frontend-GNOME/pt_BR.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:19+0200\n"
-"PO-Revision-Date: 2013-07-15 00:27+0000\n"
-"Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -49,69 +49,73 @@ msgid "Encoding:"
 msgstr "Codificação:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:7
+msgid "Automatically convert UTF-8 characters"
+msgstr ""
+
+#: ../glade/smuxi-frontend-gnome.glade.h:8
 msgid "<b>General</b>"
 msgstr "<b> Geral </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:8
+#: ../glade/smuxi-frontend-gnome.glade.h:9
 msgid "Type:"
 msgstr "Tipo:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:9
+#: ../glade/smuxi-frontend-gnome.glade.h:10
 msgid "Host:"
 msgstr "Servidor:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:10
+#: ../glade/smuxi-frontend-gnome.glade.h:11
 msgid "Password:"
 msgstr "Senha:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:11
+#: ../glade/smuxi-frontend-gnome.glade.h:12
 msgid "Port:"
 msgstr "Porta:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:12
+#: ../glade/smuxi-frontend-gnome.glade.h:13
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:170
 msgid "Show Password"
 msgstr "Mostrar Senha"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:13
+#: ../glade/smuxi-frontend-gnome.glade.h:14
 msgid "<b>Network Proxy</b>"
 msgstr "<b> Proxy de Rede </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:14
+#: ../glade/smuxi-frontend-gnome.glade.h:15
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:381
 msgid "On Connect Commands:"
 msgstr "Comandos ao conectar:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:15
+#: ../glade/smuxi-frontend-gnome.glade.h:16
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:427
 msgid "On Startup Commands:"
 msgstr "Comandos ao iniciar:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:16
+#: ../glade/smuxi-frontend-gnome.glade.h:17
 msgid "<b>Global Commands</b>"
 msgstr "<b> Comandos Globais </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:17
+#: ../glade/smuxi-frontend-gnome.glade.h:18
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:471
 msgid "C_onnection"
 msgstr "C_onexão"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:18
+#: ../glade/smuxi-frontend-gnome.glade.h:19
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:526
 msgid "Timestamp Format:"
 msgstr "Formato do horário:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:19
+#: ../glade/smuxi-frontend-gnome.glade.h:20
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:546
 msgid "Buffer Lines:"
 msgstr "Linhas de buffer:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:20
+#: ../glade/smuxi-frontend-gnome.glade.h:21
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:569
 msgid "Engine Buffer Lines:"
 msgstr "Linhas de Buffer do motor:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:21
+#: ../glade/smuxi-frontend-gnome.glade.h:22
 msgid ""
 "ss = seconds\n"
 "mm = minutes\n"
@@ -124,53 +128,53 @@ msgid ""
 "yy/yyyy = year"
 msgstr "ss = segundos\nmm = minutos\nhh = horas(01-12)\nHH = horas(00-23)\ntt = AM/PM\n\ndd = dia\nMM = mês\nyy/yyyy = ano"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:30
+#: ../glade/smuxi-frontend-gnome.glade.h:31
 msgid "Persistency Type:"
 msgstr "Tipo persistente:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:31
+#: ../glade/smuxi-frontend-gnome.glade.h:32
 msgid "Volatile Buffer Lines:"
 msgstr "Linhas de buffer volátil:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:32
+#: ../glade/smuxi-frontend-gnome.glade.h:33
 msgid "Persistent Buffer Lines:"
 msgstr "Linhas de buffer persistentes:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:33
+#: ../glade/smuxi-frontend-gnome.glade.h:34
 msgid "<b>Message Buffer</b>"
 msgstr "<b> Buffer de Mensagem </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:34
+#: ../glade/smuxi-frontend-gnome.glade.h:35
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:628
 msgid "Strip Colors"
 msgstr "Tirar Cores"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:35
+#: ../glade/smuxi-frontend-gnome.glade.h:36
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:667
 msgid "Strip Formattings"
 msgstr "Tirar formatações"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:36
+#: ../glade/smuxi-frontend-gnome.glade.h:37
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:707
 msgid "Strip UTF-8"
 msgstr "Tirar UTF-8"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:37
+#: ../glade/smuxi-frontend-gnome.glade.h:38
 msgid "Show Advanced Settings"
 msgstr "Mostrar Configurações Avançadas"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:38
+#: ../glade/smuxi-frontend-gnome.glade.h:39
 msgid "<b>Advanced</b>"
 msgstr "<b> Avançado </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:39
+#: ../glade/smuxi-frontend-gnome.glade.h:40
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:725
 msgid "General"
 msgstr "Geral"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
-#: ../glade/smuxi-frontend-gnome.glade.h:40
+#: ../glade/smuxi-frontend-gnome.glade.h:41
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:743
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:767
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1220
@@ -180,7 +184,7 @@ msgstr "Topo"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
-#: ../glade/smuxi-frontend-gnome.glade.h:41
+#: ../glade/smuxi-frontend-gnome.glade.h:42
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:780
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:802
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1261
@@ -190,7 +194,7 @@ msgstr "Fundo"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
-#: ../glade/smuxi-frontend-gnome.glade.h:42
+#: ../glade/smuxi-frontend-gnome.glade.h:43
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:816
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:841
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1335
@@ -200,7 +204,7 @@ msgstr "Saiu"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
-#: ../glade/smuxi-frontend-gnome.glade.h:43
+#: ../glade/smuxi-frontend-gnome.glade.h:44
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:856
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:881
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1376
@@ -211,236 +215,235 @@ msgstr "Direita"
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
-#: ../glade/smuxi-frontend-gnome.glade.h:44
+#: ../glade/smuxi-frontend-gnome.glade.h:45
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:896
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1301
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1416
 msgid "None"
 msgstr "Nenhuma"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:45
+#: ../glade/smuxi-frontend-gnome.glade.h:46
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:910
 msgid "<b> Tabs Position </b>"
 msgstr "<b> Aba de posição </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:46
+#: ../glade/smuxi-frontend-gnome.glade.h:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:981
 msgid "Highlight"
 msgstr "Realçar"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:47
+#: ../glade/smuxi-frontend-gnome.glade.h:48
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:961
 msgid "Activity"
 msgstr "Atividade"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:48
+#: ../glade/smuxi-frontend-gnome.glade.h:49
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:953
 msgid "No Activity"
 msgstr "Sem atividade"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:49
+#: ../glade/smuxi-frontend-gnome.glade.h:50
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:971
 msgid "Join/Part/Mode"
 msgstr "Join/Part/Mode"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:50
+#: ../glade/smuxi-frontend-gnome.glade.h:51
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1009
 msgid "<b> Tab Colors </b>"
 msgstr "<b> Aba de cores </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:51
+#: ../glade/smuxi-frontend-gnome.glade.h:52
 msgid "Automatically switch to newly opened person chats"
 msgstr "Automaticamente mudar para novos chats com pessoas"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:52
+#: ../glade/smuxi-frontend-gnome.glade.h:53
 msgid "Automatically switch to newly opened group chats"
 msgstr "Automaticamente mudar para novos chats de grupo"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:53
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Abas"
-
 #: ../glade/smuxi-frontend-gnome.glade.h:54
+msgid "Tree"
+msgstr ""
+
+#: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
 msgid "Completion Character:"
 msgstr "Completar Caracter:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:55
+#: ../glade/smuxi-frontend-gnome.glade.h:56
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1112
 msgid "Command Character:"
 msgstr "Caractere comando:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:56
+#: ../glade/smuxi-frontend-gnome.glade.h:57
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1135
 msgid "Command History Size:"
 msgstr "Histórico Tamanho do Comando"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:57
+#: ../glade/smuxi-frontend-gnome.glade.h:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1160
 msgid "Bash-Style Completion"
 msgstr "Completar Estilo Bash"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:58
+#: ../glade/smuxi-frontend-gnome.glade.h:59
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1172
 msgid "<b> Entry Field </b>"
 msgstr "<b> Campo de entrada </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:59
+#: ../glade/smuxi-frontend-gnome.glade.h:60
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1181
 msgid "Input"
 msgstr "Entrada"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:60
+#: ../glade/smuxi-frontend-gnome.glade.h:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1202
 msgid "Nick Colors"
 msgstr "Cores do Nick"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:61
+#: ../glade/smuxi-frontend-gnome.glade.h:62
 msgid "<b> Person List Position </b>"
 msgstr "<b> Lista de Posições de Pessoas </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:62
+#: ../glade/smuxi-frontend-gnome.glade.h:63
 msgid "Override"
 msgstr "Sobrescrever"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:63
+#: ../glade/smuxi-frontend-gnome.glade.h:64
 msgid "<b> Font </b>"
 msgstr "<b> Fonte </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:64
+#: ../glade/smuxi-frontend-gnome.glade.h:65
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1315
 msgid "<b> Topic Position </b>"
 msgstr "<b> Posição do Tópico </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:65
+#: ../glade/smuxi-frontend-gnome.glade.h:66
 msgid "Foreground"
 msgstr "Primeiro Plano"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:66
+#: ../glade/smuxi-frontend-gnome.glade.h:67
 msgid "Background"
 msgstr "Plano de fundo"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:67
+#: ../glade/smuxi-frontend-gnome.glade.h:68
 msgid "<b> Color </b>"
 msgstr "<b> Cor </b>"
 
 #. This is a setting for character based line wrapping vs word based when
 #. showing messages
-#: ../glade/smuxi-frontend-gnome.glade.h:69
+#: ../glade/smuxi-frontend-gnome.glade.h:70
 msgid "_Wrap Mode:"
 msgstr "_Modo de quebra:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:70
+#: ../glade/smuxi-frontend-gnome.glade.h:71
 msgid "<b> Chat </b>"
 msgstr "<b> Chat</b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:71
+#: ../glade/smuxi-frontend-gnome.glade.h:72
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1466
 msgid "Highlight words:"
 msgstr "Palavras para Realçar"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:72
+#: ../glade/smuxi-frontend-gnome.glade.h:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1490
 msgid "Beep on highlight"
 msgstr "Som ao realçar"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:73
+#: ../glade/smuxi-frontend-gnome.glade.h:74
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1502
 msgid "<b> Highlighting </b>"
 msgstr "<b> Ressaltar </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:74
+#: ../glade/smuxi-frontend-gnome.glade.h:75
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1514
 msgid "Output"
 msgstr "Saida"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:75
+#: ../glade/smuxi-frontend-gnome.glade.h:76
 msgid "Enable"
 msgstr "Ativar"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:76
+#: ../glade/smuxi-frontend-gnome.glade.h:77
 msgid "Show always"
 msgstr "Sempre mostrar"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:77
+#: ../glade/smuxi-frontend-gnome.glade.h:78
 msgid "Show when window is minimized"
 msgstr "Mostrar quando a janela é minimizada"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:78
+#: ../glade/smuxi-frontend-gnome.glade.h:79
 msgid "Show when window is closed"
 msgstr "Mostrar quando janela é fechada"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:79
+#: ../glade/smuxi-frontend-gnome.glade.h:80
 msgid "<b> Notification Area Icon </b>"
 msgstr "<b> Ícone da Área de Notificação </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:80
+#: ../glade/smuxi-frontend-gnome.glade.h:81
 msgid "Show Smuxi in the messaging menu"
 msgstr "Mostrar Smuxi no menu de mensagens"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:81
+#: ../glade/smuxi-frontend-gnome.glade.h:82
 msgid "<b>Messaging Menu</b>"
 msgstr "<b> Menu de mensagens </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:82
+#: ../glade/smuxi-frontend-gnome.glade.h:83
 msgid "Show notification popups"
 msgstr "Mostrar janela de notificação"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:83
+#: ../glade/smuxi-frontend-gnome.glade.h:84
 msgid "<b>Notification Popups</b>"
 msgstr "<b> Janela de notificação </b>"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:84
+#: ../glade/smuxi-frontend-gnome.glade.h:85
 msgid "Notification"
 msgstr "Notificação"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:85
+#: ../glade/smuxi-frontend-gnome.glade.h:86
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1523
 msgid "_Interface"
 msgstr "_Interface"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:86
+#: ../glade/smuxi-frontend-gnome.glade.h:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1589
 msgid "_Servers"
 msgstr "_Servidores"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:87
+#: ../glade/smuxi-frontend-gnome.glade.h:88
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1681
 msgid "_Filters"
 msgstr "_Filtros"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:88
+#: ../glade/smuxi-frontend-gnome.glade.h:89
 msgid "Enabled"
 msgstr "Ativado"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:89
+#: ../glade/smuxi-frontend-gnome.glade.h:90
 msgid "Log Filtered Messages"
 msgstr "Mensagens de Log Filtradas"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:90
+#: ../glade/smuxi-frontend-gnome.glade.h:91
 msgid "_Logging"
 msgstr "_Logging"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:91
+#: ../glade/smuxi-frontend-gnome.glade.h:92
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerDialog.cs:16
 msgid "Smuxi - Server"
 msgstr "Smuxi - Servidor"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:92
+#: ../glade/smuxi-frontend-gnome.glade.h:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:209
 msgid "Automatically connect to server at startup"
 msgstr "Conectar automaticamente ao servidor no início"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:93
+#: ../glade/smuxi-frontend-gnome.glade.h:94
 msgid "Protocol:"
 msgstr "Protocolo:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:94
+#: ../glade/smuxi-frontend-gnome.glade.h:95
 msgid "Network:"
 msgstr "Rede:"
 
-#: ../glade/smuxi-frontend-gnome.glade.h:95
+#: ../glade/smuxi-frontend-gnome.glade.h:96
 msgid "Hostname:"
 msgstr "Servidor:"
 
@@ -460,11 +463,11 @@ msgstr "Smuxi Cliente IRC"
 msgid "Chat with other people on IRC"
 msgstr "Converse com outras pessoas no IRC"
 
-#: ../src/Frontend-GNOME/AboutDialog.cs:65
+#: ../src/Frontend-GNOME/AboutDialog.cs:66
 msgid "translator-credits"
 msgstr "creditos tradução"
 
-#: ../src/Frontend-GNOME/AboutDialog.cs:72
+#: ../src/Frontend-GNOME/AboutDialog.cs:73
 msgid "Smuxi Website"
 msgstr "Smuxi Site"
 
@@ -538,14 +541,14 @@ msgstr "Erro: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Tem certeza que você deseja deletar o motor \"{0}\"?"
 
-#: ../src/Frontend-GNOME/Entry.cs:474
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Você está colando {0} linhas. Deseja continuar?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:587
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Comandos Finais"
 
@@ -575,7 +578,7 @@ msgid "No Proxy"
 msgstr "Sem Proxy"
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:230
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:318
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:326
 msgid "System Default"
 msgstr "Padrão do Sistema"
 
@@ -600,11 +603,11 @@ msgstr "Filtros"
 msgid "Logging"
 msgstr "Registrando log"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:666
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Campo do(s) nick(s) não pode estar vazio."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:857
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "Regex de realçamento Inválido . '{0}', Razão: {1}"
@@ -629,39 +632,39 @@ msgstr "Procurando por grupo de chat sem filtro não é recomendado. Isso pode l
 msgid "Error while fetching the list of group chats from the server."
 msgstr "Erro enquanto baixando lista com grupos de chat do servidor."
 
-#: ../src/Frontend-GNOME/Frontend.cs:400
+#: ../src/Frontend-GNOME/Frontend.cs:401
 msgid "Disconnected from engine."
 msgstr "Desconectado do motor."
 
-#: ../src/Frontend-GNOME/Frontend.cs:442
+#: ../src/Frontend-GNOME/Frontend.cs:443
 #, csharp-format
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Reconectando ao motor... (Tentativa {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:540
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Causa: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:666
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "O programa perdeu a conexão com o servidor.\nDeseja reconectar agora?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:685
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "Reconexão ao servidor falhou.\nDeseja tentar novamente?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:974
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "O servidor perdeu a conexão com o programa.\nDeseja reconectar agora?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Mostrar"
 
@@ -719,42 +722,42 @@ msgid ""
 "An engine with this name already exists! Please specify a different one."
 msgstr "O motor com esse nome já existe! Por favor especifique outro nome."
 
-#: ../src/Frontend-GNOME/Views/JoinWidget.cs:87
+#: ../src/Frontend-GNOME/Views/JoinWidget.cs:89
 msgid "Enter which chat to join"
 msgstr "Entre qual chat você deseja entrar"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:140
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "Sobre Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Preferências"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:238
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Não foi possível adicionar servidor:"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:359
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Mudando o motor vai fazer com que você desconecte do motor atual!\nTem certeza que deseja fazer isso?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:403
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Mudando para motor remoto você será desconectado do motor atual!\nTem certeza que deseja fazer isso?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:273
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Dia mudado de {0} para {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:277
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Dia mudado para {0}"
@@ -793,31 +796,35 @@ msgstr "Tipo"
 msgid "Pattern"
 msgstr "Padrão"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:538
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Modo de pouca largura de banda está ativado: Nenhuma mensagem sincronizada."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:764
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Mostrar _Barra de Menu"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:275
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Pegando lista de usuário de {0}..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:309
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "Feito."
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:320
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Pessoa"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:146
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
+msgid "Reconnect"
+msgstr ""
+
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -861,7 +868,7 @@ msgid "Smuxi - Find Group Chat"
 msgstr "Smuxi - Procurar Grupo de chat"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:47
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:71
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:73
 msgid "_Name:"
 msgstr "_Nome:"
 
@@ -906,8 +913,8 @@ msgstr "Conectar"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:77
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:79
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:150
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:151
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:147
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:148
 msgid "Open Log"
 msgstr "Abrir Log"
 
@@ -998,29 +1005,29 @@ msgstr "Mostrar _Barra de estatus"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:141
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:142
-msgid "Show _Join Bar"
-msgstr "Mostrar _Barra de entrar"
-
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:144
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:145
 msgid "_Fullscreen"
 msgstr "_Tela inteira"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:147
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:148
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:144
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:145
 msgid "_About"
 msgstr "_Sobre"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:153
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:155
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:150
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:152
 msgid "Find Group Chat"
 msgstr "Procurar Grupo de Chat"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:157
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:158
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:154
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:155
 msgid "_Website"
 msgstr "_Site"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:157
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:158
+msgid "Show _Toolbar"
+msgstr ""
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.QuickConnectDialog.cs:19
 msgid "Smuxi - Connect"
 msgstr "Smuxi - Conectar"
@@ -1033,6 +1040,10 @@ msgstr "Smuxi - Preferências"
 msgid "Nicknames:"
 msgstr "Apelidos:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Abas"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Posição da lista de usuários </b>"
@@ -1180,7 +1191,7 @@ msgstr "<span size=\"small\">Se ativado, o motor atual será o padrão na proxim
 msgid "Smuxi - Open Chat"
 msgstr "Smuxi - Chat Aberto"
 
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:61
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:63
 msgid "_Type:"
 msgstr "_Tipo:"
 
diff --git a/po-Frontend-GNOME/sv.po b/po-Frontend-GNOME/sv.po
index caefefc..791669e 100644
--- a/po-Frontend-GNOME/sv.po
+++ b/po-Frontend-GNOME/sv.po
@@ -5,13 +5,14 @@
 # Translators:
 # flugsio <flugsio at gmail.com>, 2013
 # flugsio <flugsio at gmail.com>, 2011, 2012
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 13:35+0000\n"
-"Last-Translator: flugsio <flugsio at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-10 16:50+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -94,7 +95,7 @@ msgstr "Kommando vid uppstart:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:17
 msgid "<b>Global Commands</b>"
-msgstr "<b>Allmänna kommandon</b>"
+msgstr "<b>Globala kommandon</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:18
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:471
@@ -231,7 +232,7 @@ msgstr "<b> Position för flikar </b>"
 #: ../glade/smuxi-frontend-gnome.glade.h:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:981
 msgid "Highlight"
-msgstr "Förstärk"
+msgstr "Notifiera"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:48
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:961
@@ -262,9 +263,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "Byt automatiskt till nyligen öppnade grupp-chattar"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "Flikar"
+msgid "Tree"
+msgstr "Träd"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -343,17 +343,17 @@ msgstr "<b> Chatt </b>"
 #: ../glade/smuxi-frontend-gnome.glade.h:72
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1466
 msgid "Highlight words:"
-msgstr "Förstärk ord"
+msgstr "Ord som orsakar notifiering:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1490
 msgid "Beep on highlight"
-msgstr "Pip vid förstärkning"
+msgstr "Pip vid notifiering"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:74
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1502
 msgid "<b> Highlighting </b>"
-msgstr "<b> Förstärkning </b>"
+msgstr "<b> Notifiering </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:75
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1514
@@ -417,7 +417,7 @@ msgstr "_Filter"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:89
 msgid "Enabled"
-msgstr "Aktivera"
+msgstr "Aktiverad"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:90
 msgid "Log Filtered Messages"
@@ -443,7 +443,7 @@ msgstr "Protokoll:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:95
 msgid "Network:"
-msgstr "Nätverk"
+msgstr "Nätverk:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:96
 msgid "Hostname:"
@@ -483,7 +483,7 @@ msgstr "Smuxi krashade på grund av ett ohanterat fel."
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:63
 msgid "Here is the stacktrace, please report this bug!"
-msgstr "Kan du vara bussig och rapportera denna bugg. Ta med utskriften från kraschen i felrapporten!"
+msgstr "Ta med den här utskriften från kraschen i felrapporten!"
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:83
 msgid "_Report Bug"
@@ -543,14 +543,14 @@ msgstr "Fel: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "Är du säker på att du vill radera motorn \"{0}\"?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "Du kommer att klistra in {0} rader. Vill du fortsätta?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "Kommandon för framdelen"
 
@@ -605,14 +605,14 @@ msgstr "Filter"
 msgid "Logging"
 msgstr "Loggning"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "Fältet för smeknamn kan inte lämnas tomt."
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
-msgstr "Ogiltigt mönster för framhävande: \"{0}\". Anledning: {1}"
+msgstr "Ogiltigt mönster för notifiering: \"{0}\". Anledning: {1}"
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:81
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:106
@@ -643,30 +643,30 @@ msgstr "Frånkopplad från motorn."
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "Återkopplar till motorn... (försök {0})"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "Anledning: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "Framdelen tappade anslutningen till server.\nVill du återansluta?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "Återanslutningsförsöket fungerade inte.\nVill du försöka igen?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "Servern har tappat anslutningen till framdelen.\nVill du återansluta?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "Visa"
 
@@ -722,44 +722,44 @@ msgstr "Tack"
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:304
 msgid ""
 "An engine with this name already exists! Please specify a different one."
-msgstr "En motor med detta namn finns reda. Ange ett annat."
+msgstr "En motor med detta namn finns redan. Ange ett annat."
 
 #: ../src/Frontend-GNOME/Views/JoinWidget.cs:89
 msgid "Enter which chat to join"
 msgstr "Ange vilken chat att ansluta till"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "Om Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "Alternativ"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "Kan inte lägga till server:"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Byte till lokal motor kommer att koppla bort dig från den aktuella motorn!\nÄr du säker på att du vill göra detta?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "Byte av fjärrmotor kommer att koppla bort dig från den aktuella motorn!\nÄr du säker på att du vill göra detta?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "Dag ändrades från {0} till {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "Dygnsskifte, {0}"
@@ -798,35 +798,35 @@ msgstr "Typ"
 msgid "Pattern"
 msgstr "Mönster"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "Låg bandbreddsläge är aktiverat: inga meddelanden synkroniserade."
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "Visa Menu"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "Hämtar användarlistan för {0}..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "klar"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "Person"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "Återanslut"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1042,6 +1042,10 @@ msgstr "Smuxi - Egenskaper"
 msgid "Nicknames:"
 msgstr "Smeknamn:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "Flikar"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> Position för användarlista</b>"
@@ -1067,7 +1071,7 @@ msgid ""
 "<span size=\"small\">Enables the use of SSH for the connection.  This has a "
 "small performance impact, but is more secure and required when using NAT or "
 "port-based firewalls</span>"
-msgstr "<span size=\"small\">Aktiverar användning av SSH för anslutningen. Detta kan innebära en liten negativ inverka på hastigheten men är säkrare och krävs när NAT eller port-baserade brändväggar används</span>"
+msgstr "<span size=\"small\">Aktiverar användning av SSH för anslutningen. Detta kan innebära en liten negativ inverkan på hastigheten men är säkrare och krävs när NAT eller port-baserade brändväggar används</span>"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:135
 msgid "SSH _Host:"
@@ -1110,11 +1114,11 @@ msgid ""
 "<span size=\"small\">Password which will be used to log into the SSH server."
 " The password is optional if SSH key authorization is used (see "
 "below).</span>"
-msgstr "<span size=\"small\">Lösenord som kommer användas att logga in till SSH-servern. Lösenordet är valfritt om SSH nyckel-auktorisation används (se nedan).</span>"
+msgstr "<span size=\"small\">Lösenord som kommer användas att logga in till SSH-servern. Lösenordet är valfritt om SSH-nyckel-auktorisation används (se nedan).</span>"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:140
 msgid "_SSH Keyfile: (optional)"
-msgstr "_SSH nyckelfil: (valfri)"
+msgstr "_SSH-nyckelfil: (valfri)"
 
 #. Container child vbox17.Gtk.Box+BoxChild
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:148
@@ -1125,7 +1129,7 @@ msgstr "Välj en fil"
 msgid ""
 "<span size=\"small\">SSH private keyfile which will be used to log into the "
 "SSH server</span>"
-msgstr "<span size=\"small\">SSH privat nyckelfil att användas för att logga in på SSH-servern</span>"
+msgstr "<span size=\"small\">Privat SSH-nyckelfil att användas för att logga in på SSH-servern</span>"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:181
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:188
diff --git a/po-Frontend-GNOME/zh_CN.po b/po-Frontend-GNOME/te.po
similarity index 76%
copy from po-Frontend-GNOME/zh_CN.po
copy to po-Frontend-GNOME/te.po
index ca3ca96..b2bef5d 100644
--- a/po-Frontend-GNOME/zh_CN.po
+++ b/po-Frontend-GNOME/te.po
@@ -3,117 +3,117 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012-2013
+# ప్రవీణ్ ఇళ్ళ <mail2ipn at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 17:50+0000\n"
-"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-12 04:44+0000\n"
+"Last-Translator: ప్రవీణ్ ఇళ్ళ <mail2ipn at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:1
 msgid "Smuxi Preferences"
-msgstr "Smuxi 偏好设置"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:2
 msgid ""
 "The nickname to use. You can specify extra nicknames (separated by spaces) "
 "which will be used as fallbacks when the first choice is not available. By "
 "default $nick_ and $nick__ will be used as fallbacks."
-msgstr "要使用的昵称。您可以指定多个昵称(用空格分隔)作为首个选项不可用时的候选项。默认使用 $昵称_ 和 $昵称__ 作为候选项。"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:3
 msgid "Nickname(s):"
-msgstr "昵称:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:4
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:315
 msgid "Username:"
-msgstr "用户名:"
+msgstr "వాడుకరిపేరు:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:5
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:338
 msgid "Realname:"
-msgstr "真名:"
+msgstr "అసలుపేరు:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:6
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:359
 msgid "Encoding:"
-msgstr "编码:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:7
 msgid "Automatically convert UTF-8 characters"
-msgstr "自动转换 UTF-8 字符"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:8
 msgid "<b>General</b>"
-msgstr "<b>全局</b>"
+msgstr "<b>సాధారణం</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:9
 msgid "Type:"
-msgstr "类型:"
+msgstr "రకం:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:10
 msgid "Host:"
-msgstr "主机:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:11
 msgid "Password:"
-msgstr "密码:"
+msgstr "సంకేతపదం:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:12
 msgid "Port:"
-msgstr "端口:"
+msgstr "పోర్టు:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:13
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:170
 msgid "Show Password"
-msgstr "显示密码"
+msgstr "సంకేతపదాన్ని చూపించు"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:14
 msgid "<b>Network Proxy</b>"
-msgstr "<b>网络代理</b>"
+msgstr "<b>నెట్వర్క్ ప్రాక్సీ</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:15
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:381
 msgid "On Connect Commands:"
-msgstr "连接时命令:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:16
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:427
 msgid "On Startup Commands:"
-msgstr "启动时命令:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:17
 msgid "<b>Global Commands</b>"
-msgstr "<b>全局命令</b>"
+msgstr "<b>Global Commands</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:18
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:471
 msgid "C_onnection"
-msgstr "连接(_O)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:19
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:526
 msgid "Timestamp Format:"
-msgstr "时间戳格式:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:20
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:546
 msgid "Buffer Lines:"
-msgstr "缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:21
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:569
 msgid "Engine Buffer Lines:"
-msgstr "引擎缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:22
 msgid ""
@@ -126,51 +126,51 @@ msgid ""
 "dd = day\n"
 "MM = month\n"
 "yy/yyyy = year"
-msgstr "ss = 秒数\nmm = 分数\nhh = 小时数 (01 - 12)\nHH = 小时数 (00 - 23)\ntt = AM/PM\n\ndd = day\nMM = month\nyy/yyyy = year"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:31
 msgid "Persistency Type:"
-msgstr "持久类型:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:32
 msgid "Volatile Buffer Lines:"
-msgstr "临时缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:33
 msgid "Persistent Buffer Lines:"
-msgstr "持久缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:34
 msgid "<b>Message Buffer</b>"
-msgstr "<b>信息缓冲</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:35
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:628
 msgid "Strip Colors"
-msgstr "去除颜色"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:36
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:667
 msgid "Strip Formattings"
-msgstr "去除格式"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:37
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:707
 msgid "Strip UTF-8"
-msgstr "去除 UTF-8"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:38
 msgid "Show Advanced Settings"
-msgstr "显示高级设置"
+msgstr "ఉన్నత అమరికలను చూపించు"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:39
 msgid "<b>Advanced</b>"
-msgstr "<b>高级</b>"
+msgstr "<b>ఉన్నతం</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:40
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:725
 msgid "General"
-msgstr "全局"
+msgstr "సాధారణం"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -180,7 +180,7 @@ msgstr "全局"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1220
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1246
 msgid "Top"
-msgstr "顶部"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -190,7 +190,7 @@ msgstr "顶部"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1261
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1286
 msgid "Bottom"
-msgstr "底部"
+msgstr "కింద"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
@@ -200,7 +200,7 @@ msgstr "底部"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1335
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1361
 msgid "Left"
-msgstr "左边"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
@@ -210,7 +210,7 @@ msgstr "左边"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1376
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1401
 msgid "Right"
-msgstr "右边"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -220,939 +220,942 @@ msgstr "右边"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1301
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1416
 msgid "None"
-msgstr "无"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:46
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:910
 msgid "<b> Tabs Position </b>"
-msgstr "<b> 标签位置 </b>"
+msgstr "<b> ట్యాబుల స్థానం </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:981
 msgid "Highlight"
-msgstr "高亮"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:48
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:961
 msgid "Activity"
-msgstr "活动"
+msgstr "కలాపం"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:49
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:953
 msgid "No Activity"
-msgstr "无活动"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:50
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:971
 msgid "Join/Part/Mode"
-msgstr "加入/离开/模式"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:51
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1009
 msgid "<b> Tab Colors </b>"
-msgstr "<b> 标签颜色 </b>"
+msgstr "<b> ట్యాబు రంగులు </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:52
 msgid "Automatically switch to newly opened person chats"
-msgstr "自动切换到新打开的单人聊天"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:53
 msgid "Automatically switch to newly opened group chats"
-msgstr "自动切换到新打开的群组聊天"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "标签"
+msgid "Tree"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
 msgid "Completion Character:"
-msgstr "完成字符:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:56
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1112
 msgid "Command Character:"
-msgstr "命令字符:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:57
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1135
 msgid "Command History Size:"
-msgstr "命令历史数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1160
 msgid "Bash-Style Completion"
-msgstr "Bash 式完成"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:59
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1172
 msgid "<b> Entry Field </b>"
-msgstr "<b> 预留字段 </b>"
+msgstr "<b> ప్రవేశిక క్షేత్రం </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:60
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1181
 msgid "Input"
-msgstr "输入"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1202
 msgid "Nick Colors"
-msgstr "昵称颜色"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:62
 msgid "<b> Person List Position </b>"
-msgstr "<b> 成员列表位置 </b>"
+msgstr "<b> వ్యక్తి జాబితా స్థానం </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:63
 msgid "Override"
-msgstr "覆盖"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:64
 msgid "<b> Font </b>"
-msgstr "<b> 字体 </b>"
+msgstr "<b> ఖతి </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:65
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1315
 msgid "<b> Topic Position </b>"
-msgstr "<b> 主题位置 </b>"
+msgstr "<b> విషయపు స్థానం </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:66
 msgid "Foreground"
-msgstr "前景"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:67
 msgid "Background"
-msgstr "背景"
+msgstr "నేపథ్యం"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:68
 msgid "<b> Color </b>"
-msgstr "<b> 颜色 </b>"
+msgstr "<b> రంగు </b>"
 
 #. This is a setting for character based line wrapping vs word based when
 #. showing messages
 #: ../glade/smuxi-frontend-gnome.glade.h:70
 msgid "_Wrap Mode:"
-msgstr "_自动换行模式:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:71
 msgid "<b> Chat </b>"
-msgstr "<b> 聊天 </b>"
+msgstr "<b>సంభాషణ</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:72
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1466
 msgid "Highlight words:"
-msgstr "高亮单词:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1490
 msgid "Beep on highlight"
-msgstr "高亮时鸣叫"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:74
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1502
 msgid "<b> Highlighting </b>"
-msgstr "<b> 高亮 </b>"
+msgstr "<b> ఉద్దీపనం </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:75
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1514
 msgid "Output"
-msgstr "输出"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:76
 msgid "Enable"
-msgstr "启用"
+msgstr "చేతనించు"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:77
 msgid "Show always"
-msgstr "总是显示"
+msgstr "ఎల్లప్పుడూ చూపించు"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:78
 msgid "Show when window is minimized"
-msgstr "当窗口最小化时显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:79
 msgid "Show when window is closed"
-msgstr "当窗口关闭时显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:80
 msgid "<b> Notification Area Icon </b>"
-msgstr "<b> 通知区域图标 </b>"
+msgstr "<b> గమనిక ప్రాంత ప్రతీక </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:81
 msgid "Show Smuxi in the messaging menu"
-msgstr "在消息菜单中显示 Smuxi"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:82
 msgid "<b>Messaging Menu</b>"
-msgstr "<b>消息菜单</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:83
 msgid "Show notification popups"
-msgstr "显示通知弹出"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:84
 msgid "<b>Notification Popups</b>"
-msgstr "<b>通知弹出</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:85
 msgid "Notification"
-msgstr "通知"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:86
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1523
 msgid "_Interface"
-msgstr "界面(_I)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1589
 msgid "_Servers"
-msgstr "服务器(_S)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:88
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1681
 msgid "_Filters"
-msgstr "过滤器(_F)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:89
 msgid "Enabled"
-msgstr "启用"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:90
 msgid "Log Filtered Messages"
-msgstr "记录经过滤的消息"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:91
 msgid "_Logging"
-msgstr "历史(_L)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:92
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerDialog.cs:16
 msgid "Smuxi - Server"
-msgstr "Smuxi - 服务器"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:209
 msgid "Automatically connect to server at startup"
-msgstr "启动时自动连接到服务器"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:94
 msgid "Protocol:"
-msgstr "协议:"
+msgstr "ప్రతినిధి:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:95
 msgid "Network:"
-msgstr "网络:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:96
 msgid "Hostname:"
-msgstr "主机名:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:1
 msgid "Smuxi"
-msgstr "Smuxi"
+msgstr "స్మక్సి"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:2
 msgid "IRC Chat"
-msgstr "IRC 聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:3
 msgid "Smuxi IRC Client"
-msgstr "Smuxi IRC 客户端"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:4
 msgid "Chat with other people on IRC"
-msgstr "和 IRC 上的其他人聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/AboutDialog.cs:66
 msgid "translator-credits"
-msgstr "Dean Lee <xslidian+smuxi at gmail.com>"
+msgstr "Praveen Illa <mail2pi at yahoo.com>, 2013"
 
 #: ../src/Frontend-GNOME/AboutDialog.cs:73
 msgid "Smuxi Website"
-msgstr "Smuxi 网站"
+msgstr "స్మక్సి జాలగూడు"
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:46
 msgid "Oops, I did it again..."
-msgstr "Oops,我又做了一次..."
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:59
 msgid "Smuxi crashed because an unhandled exception was thrown!"
-msgstr "Smuxi 崩溃了,因为遇到了未处理的意外!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:63
 msgid "Here is the stacktrace, please report this bug!"
-msgstr "这是 stacktrace,请报告错误!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:83
 msgid "_Report Bug"
-msgstr "报告错误(_R)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:66
 msgid "Engine not found."
-msgstr "引擎未找到。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:81
 msgid "Engine Manager"
-msgstr "引擎管理器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:100
 msgid "Select which Smuxi engine you want to connect to"
-msgstr "选择希望连接到的 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:106
 msgid "Engine:"
-msgstr "引擎:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:117
 msgid "Use Low Bandwidth Mode"
-msgstr "使用低带宽模式"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:141
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:201
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:383
 msgid "Local Engine"
-msgstr "本地引擎"
+msgstr "స్థానిక యంత్రం"
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:193
 msgid "Please select an engine!"
-msgstr "请选择一个引擎!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:219
 #, csharp-format
 msgid "Your frontend version ({0}) does not match the engine version ({1})!"
-msgstr "您的前端版本 ({0}) 与引擎版本 ({1}) 不匹配!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:246
 msgid "An error occurred while connecting to the engine!"
-msgstr "连接到引擎时出现了一个错误!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:247
 #, csharp-format
 msgid "Engine URL: {0}"
-msgstr "引擎 URL: {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:250
 #, csharp-format
 msgid "Error: {0}"
-msgstr "错误: {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:320
 #, csharp-format
 msgid "Are you sure you want to delete the engine \"{0}\"?"
-msgstr "您确实要删除引擎 \"{0}\" 吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
-msgstr "您正在粘贴 {0} 行。是否继续?"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
-msgstr "前端命令"
+msgstr ""
 
 #: ../src/Frontend-GNOME/NotImplementedMessageDialog.cs:40
 msgid "Sorry, not implemented yet!"
-msgstr "抱歉,尚未实现!"
+msgstr ""
 
 #. fill ListStore
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:185
 msgid "Character"
-msgstr "字符"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:186
 msgid "Word"
-msgstr "单词"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:203
 msgid "Volatile"
-msgstr "临时"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:205
 msgid "Persistent"
-msgstr "持久"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:228
 msgid "No Proxy"
-msgstr "无代理"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:230
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:326
 msgid "System Default"
-msgstr "系统默认"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:244
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:140
 msgid "Connection"
-msgstr "连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:248
 msgid "Interface"
-msgstr "界面"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:252
 msgid "Servers"
-msgstr "服务器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:259
 msgid "Filters"
-msgstr "过滤器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:263
 msgid "Logging"
-msgstr "历史"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
-msgstr "昵称字段不能为空。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
-msgstr "高亮正则表达式无效: '{0}'。原因: {1}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:81
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:106
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:265
 msgid "Name"
-msgstr "名称"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:86
 msgid "Topic"
-msgstr "主题"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:115
 msgid ""
 "Searching for group chats without a filter is not recommended.  This may take a while, or may not work at all.\n"
 "Do you wish to continue?"
-msgstr "不建议不用过滤器搜索群组聊天。可能要耗费一些时间,也可能无法完成搜索。\n您是否打算继续?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:156
 msgid "Error while fetching the list of group chats from the server."
-msgstr "从服务器装载群组聊天列表出错。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Frontend.cs:401
 msgid "Disconnected from engine."
-msgstr "从引擎断开连接。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Frontend.cs:443
 #, csharp-format
 msgid "Reconnecting to engine... (attempt {0})"
-msgstr "正在重新连接到引擎... (第 {0} 次尝试)"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
-msgstr "原因: {0}"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
-msgstr "前端与服务器之间的连接已丢失。\n是否希望现在重新连接?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
-msgstr "重新连接到服务器失败。\n是否重试?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
-msgstr "服务器与前端之间的连接已丢失。\n是否希望现在重新连接?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
-msgstr "显示"
+msgstr "చూపించు"
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:58
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:233
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:70
 msgid "Protocol"
-msgstr "协议"
+msgstr "ప్రతినిధి"
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:59
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:71
 msgid "Hostname"
-msgstr "主机名"
+msgstr "అతిధేయినామం"
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:162
 msgid "Unable to load server: "
-msgstr "无法加载服务器: "
+msgstr ""
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:54
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:239
 msgid "Person / Private"
-msgstr "成员 / 私聊"
+msgstr ""
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:55
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:240
 msgid "Group / Public"
-msgstr "群组 / 公开"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:71
 msgid "Engine Assistant - Smuxi"
-msgstr "引擎助手 - Smuxi"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:93
 msgid "Add Smuxi Engine"
-msgstr "添加 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:95
 msgid "Edit Smuxi Engine"
-msgstr "编辑 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:204
 msgid "Credentials"
-msgstr "证书"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:284
 msgid "Now you can use the Smuxi Engine"
-msgstr "现在您可以使用该 Smuxi 引擎了"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:287
 msgid "Thank you"
-msgstr "谢谢您"
+msgstr "ధన్యవాదములు"
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:304
 msgid ""
 "An engine with this name already exists! Please specify a different one."
-msgstr "已存在同名引擎! 请另外指定一个。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/JoinWidget.cs:89
 msgid "Enter which chat to join"
-msgstr "输入要加入的聊天"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
-msgstr "关于 Smuxi"
+msgstr "స్మక్సి గురించి"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
-msgstr "偏好设置"
+msgstr "ప్రాధాన్యతలు"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
-msgstr "无法添加服务器: "
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
-msgstr "切换到本地引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
-msgstr "切换到远程引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
-msgstr "天数由 {0} 变为 {1}"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
-msgstr "日期已改为 {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:120
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:130
 #, csharp-format
 msgid "Invalid filter regex: '{0}'. Reason: {1}"
-msgstr "无效的过滤器正则表达式: '{0}'。原因: {1}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:197
 msgid "Are you sure you want to delete the selected filter?"
-msgstr "您确实要删除选中的过滤器?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:241
 msgid "Protocol / Server"
-msgstr "协议 / 服务器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:248
 msgid "Chat Type"
-msgstr "聊天类型"
+msgstr "సంభాషణ రకం"
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:281
 msgid "Normal"
-msgstr "普通"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:282
 msgid "Event"
-msgstr "事件"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:289
 msgid "Type"
-msgstr "类型"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:314
 msgid "Pattern"
-msgstr "匹配"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
-msgstr "低带宽模式未启用: 未同步任何信息。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
-msgstr "显示菜单栏(_M)"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
-msgstr "正在检索 {0} 的用户列表..."
+msgstr ""
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
-msgstr "完成。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
-msgstr "成员"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
-msgstr "重新连接"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
-msgstr "关闭该协议将同时关闭所有连接到它的开放聊天!\n您确实希望这么做吗?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:189
 msgid "Are you sure you want to delete the selected server?"
-msgstr "您确实打算删除选中的服务器吗?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:245
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:279
 msgid "Unable to edit server: "
-msgstr "无法编辑服务器: "
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:24
 msgid "Find"
-msgstr "查找"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:44
 msgid "_Search for:"
-msgstr "搜索(_S):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:73
 msgid "_Match Case"
-msgstr "匹配大小写(_M)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:85
 msgid "Search _Backwards"
-msgstr "向上搜索(_B)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:97
 msgid "_Wrap Around"
-msgstr "全文搜索(_W)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:110
 msgid "Use _Regular Expressions"
-msgstr "使用正则表达式(_R)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:23
 msgid "Smuxi - Find Group Chat"
-msgstr "Smuxi - 查找群组聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:73
 msgid "_Name:"
-msgstr "名称(_N):"
+msgstr "పేరు (_N):"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.JoinWidget.cs:69
 msgid "Join"
-msgstr "加入"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:56
 msgid "_Smuxi"
-msgstr "_Smuxi"
+msgstr "స్మక్సి (_S)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:59
 msgid "_Server"
-msgstr "服务器(_S)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:62
 msgid "_Chat"
-msgstr "聊天(_C)"
+msgstr "సంభాషించు (_C)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:64
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:65
 msgid "_Engine"
-msgstr "引擎(_E)"
+msgstr "యంత్రం (_E)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:67
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:68
 msgid "_View"
-msgstr "视图(_V)"
+msgstr "వీక్షణం (_V)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:70
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:71
 msgid "_Help"
-msgstr "帮助(_H)"
+msgstr "సహాయం (_H)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:75
 msgid "Connect"
-msgstr "连接"
+msgstr "అనుసంధానించు"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:77
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:79
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:147
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:148
 msgid "Open Log"
-msgstr "打开聊天历史"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:88
 msgid "_Preferences"
-msgstr "偏好设置(_P)"
+msgstr "ప్రాధాన్యతలు (_P)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:90
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:91
 msgid "_Quit"
-msgstr "退出(_Q)"
+msgstr "నిష్క్రమించు (_Q)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:94
 msgid "_Connect"
-msgstr "连接(_C)"
+msgstr "అనుసంధానించు (_C)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:96
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:97
 msgid "_Add"
-msgstr "添加(_A)"
+msgstr "జతచేయి (_A)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:99
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:100
 msgid "_Manage"
-msgstr "管理(_M)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:102
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:103
 msgid "_Open / Join Chat"
-msgstr "打开(_O) / 加入聊天"
+msgstr "సంభాషణ తెరువు / చేరు (_O)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:105
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:106
 msgid "_Find Group Chat"
-msgstr "查找群组聊天(_F)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:108
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:109
 msgid "C_lear All Activity"
-msgstr "清除所有活动(_L)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:111
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:112
 msgid "_Next Chat"
-msgstr "下一个聊天(_N)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:114
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:115
 msgid "_Previous Chat"
-msgstr "上一个聊天(_P)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:117
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:118
 msgid "_Close"
-msgstr "关闭(_C)"
+msgstr "మూసివేయి (_C)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:120
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:121
 msgid "_Use Local Engine"
-msgstr "使用本地引擎(_U)"
+msgstr "స్థానిక యంత్రాన్ని వాడు (_U)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:123
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:124
 msgid "_Add Remote Engine"
-msgstr "添加远程引擎(_A)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:126
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:127
 msgid "Switch Remote Engine"
-msgstr "切换远程引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:129
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:130
 msgid "_Caret Mode"
-msgstr "插入模式(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:132
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:133
 msgid "_Browse Mode"
-msgstr "浏览模式(_B)"
+msgstr "విహారణ రీతి (_B)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:138
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:139
 msgid "Show _Statusbar"
-msgstr "显示状态栏(_S)"
+msgstr "స్థితిపట్టీని చూపించు (_S)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:141
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:142
 msgid "_Fullscreen"
-msgstr "全屏(_F)"
+msgstr "పూర్తితెర (_F)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:144
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:145
 msgid "_About"
-msgstr "关于(_A)"
+msgstr "గురించి (_A)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:150
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:152
 msgid "Find Group Chat"
-msgstr "查找群组聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:154
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:155
 msgid "_Website"
-msgstr "网站(_W)"
+msgstr "జాలగూడు (_W)"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:157
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:158
 msgid "Show _Toolbar"
-msgstr "显示工具栏(_T)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.QuickConnectDialog.cs:19
 msgid "Smuxi - Connect"
-msgstr "Smuxi - 连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:206
 msgid "Smuxi - Preferences"
-msgstr "Smuxi - 首选项"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:295
 msgid "Nicknames:"
-msgstr "昵称:"
+msgstr ""
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
-msgstr "<b> 用户列表位置 </b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1441
 msgid "<b> Channel </b>"
-msgstr "<b> 频道 </b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1652
 msgid "<b>Channel Filters</b>"
-msgstr "<b>频道过滤器</b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1669
 msgid "<b>User Filters</b>"
-msgstr "<b>用户过滤器</b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:42
 msgid "Use _SSH Tunnel"
-msgstr "使用 _SSH 隧道"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:56
 msgid ""
 "<span size=\"small\">Enables the use of SSH for the connection.  This has a "
 "small performance impact, but is more secure and required when using NAT or "
 "port-based firewalls</span>"
-msgstr "<span size=\"small\">为连接启用 SSH。这对性能有一定影响,但更安全,且使用 NAT 或者基于端口的防火墙时必需</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:135
 msgid "SSH _Host:"
-msgstr "SS_H 主机:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:146
 msgid "<span size=\"small\">DNS or IP address and port of the SSH server</span>"
-msgstr "<span size=\"small\">SSH 服务器的 DNS 或者 IP 地址与端口</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:159
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:173
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:129
 msgid "_Port:"
-msgstr "端口(_P):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:186
 msgid "<span size=\"small\">DNS or IP address and port of the Smuxi server</span>"
-msgstr "<span size=\"small\">Smuxi 服务器的 DNS 或者 IP 地址与端口</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:199
 msgid "_Smuxi Host:"
-msgstr "_Smuxi 主机:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:52
 msgid "_SSH Username: (optional)"
-msgstr "_SSH 用户名: (可选)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:75
 msgid ""
 "<span size=\"small\">Username which will be used to log into the SSH "
 "server</span>"
-msgstr "<span size=\"small\">用于登录 SSH 服务器的用户名</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:95
 msgid "_SSH Password: (optional)"
-msgstr "_SSH 密码: (可选)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:119
 msgid ""
 "<span size=\"small\">Password which will be used to log into the SSH server."
 " The password is optional if SSH key authorization is used (see "
 "below).</span>"
-msgstr "<span size=\"small\">将用于登录 SSH 服务器的密码。若使用了 SSH 密钥(参见下方选项),则密码可选。</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:140
 msgid "_SSH Keyfile: (optional)"
-msgstr "_SSH 密钥文件: (可选)"
+msgstr ""
 
 #. Container child vbox17.Gtk.Box+BoxChild
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:148
 msgid "Select a File"
-msgstr "选择文件"
+msgstr "ఒక దస్త్రాన్ని ఎంచుకోండి"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:161
 msgid ""
 "<span size=\"small\">SSH private keyfile which will be used to log into the "
 "SSH server</span>"
-msgstr "<span size=\"small\">SSH 私钥文件将用于登录 SSH 服务器</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:181
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:188
 msgid "_Username:"
-msgstr "用户名(_U):"
+msgstr "వాడుకరిపేరు (_U):"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:204
 msgid ""
 "<span size=\"small\">Username which will be used to log into the Smuxi "
 "server</span>"
-msgstr "<span size=\"small\">将用于登录 Smuxi 服务器的用户名</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:224
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:87
 msgid "_Password:"
-msgstr "密码(_P):"
+msgstr "సంకేతపదం (_P):"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:248
 msgid "<span size=\"small\">Password of the user</span>"
-msgstr "<span size=\"small\">用户密码</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:268
 msgid "_Verify Password:"
-msgstr "验证密码(_V):"
+msgstr "సంకేతపదాన్ని సరిచూడు (_V):"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:292
 msgid "<span size=\"small\">Repeat the password for verification</span>"
-msgstr "<span size=\"small\">请再次输入密码以供验证</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantIntroWidget.cs:19
 msgid ""
@@ -1160,62 +1163,62 @@ msgid ""
 "You need to enter some information before you can use the engine.\n"
 "\n"
 "Click \"Forward\" to begin."
-msgstr "欢迎使用 Smuxi 引擎配置助手。\n在您能够使用引擎之前,需要输入一些信息。\n\n点击“前进”开始。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:36
 msgid "_Engine Name:"
-msgstr "引擎名称(_E):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:59
 msgid "<span size=\"small\">Profile name of the new engine</span>"
-msgstr "<span size=\"small\">新引擎配置文件的名称</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:80
 msgid "_Default Engine:"
-msgstr "默认引擎(_D):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:91
 msgid "Use as new default engine"
-msgstr "用作新的默认引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:104
 msgid ""
 "<span size=\"small\">If enabled, the current engine will be the default next"
 " time Smuxi is started</span>"
-msgstr "<span size=\"small\">如果启用,Smuxi 下次启动时当前引擎将作为默认引擎</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:20
 msgid "Smuxi - Open Chat"
-msgstr "Smuxi - 开放聊天"
+msgstr "స్మక్సి - స్వేచ్ఛా సంభాషణ"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:63
 msgid "_Type:"
-msgstr "_类型:"
+msgstr "రకం (_T):"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:54
 msgid "_Hostname:"
-msgstr "_主机名:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:75
 msgid "_Network:"
-msgstr "_网络:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:198
 msgid "_Protocol:"
-msgstr "_协议:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:222
 msgid "Use Encryption"
-msgstr "使用加密"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:234
 msgid "Validate Server Certificate"
-msgstr "验证服务器证书"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:254
 msgid "_On Connect Commands:"
-msgstr "连接时命令(_O):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:265
 msgid "_Ignore Commands"
-msgstr "忽略命令(_I)"
+msgstr ""
diff --git a/po-Frontend-GNOME/zh_CN.po b/po-Frontend-GNOME/tr.po
similarity index 76%
copy from po-Frontend-GNOME/zh_CN.po
copy to po-Frontend-GNOME/tr.po
index ca3ca96..bc7b5ff 100644
--- a/po-Frontend-GNOME/zh_CN.po
+++ b/po-Frontend-GNOME/tr.po
@@ -3,117 +3,118 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012-2013
+# Mirco Bauer <meebey at gmail.com>, 2012
+# zeugma <sunder67 at hotmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 17:50+0000\n"
-"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-05 19:06+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:1
 msgid "Smuxi Preferences"
-msgstr "Smuxi 偏好设置"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:2
 msgid ""
 "The nickname to use. You can specify extra nicknames (separated by spaces) "
 "which will be used as fallbacks when the first choice is not available. By "
 "default $nick_ and $nick__ will be used as fallbacks."
-msgstr "要使用的昵称。您可以指定多个昵称(用空格分隔)作为首个选项不可用时的候选项。默认使用 $昵称_ 和 $昵称__ 作为候选项。"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:3
 msgid "Nickname(s):"
-msgstr "昵称:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:4
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:315
 msgid "Username:"
-msgstr "用户名:"
+msgstr "Kullanıcı adı:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:5
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:338
 msgid "Realname:"
-msgstr "真名:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:6
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:359
 msgid "Encoding:"
-msgstr "编码:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:7
 msgid "Automatically convert UTF-8 characters"
-msgstr "自动转换 UTF-8 字符"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:8
 msgid "<b>General</b>"
-msgstr "<b>全局</b>"
+msgstr "<b>Genel</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:9
 msgid "Type:"
-msgstr "类型:"
+msgstr "Tür:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:10
 msgid "Host:"
-msgstr "主机:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:11
 msgid "Password:"
-msgstr "密码:"
+msgstr "Parola:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:12
 msgid "Port:"
-msgstr "端口:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:13
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:170
 msgid "Show Password"
-msgstr "显示密码"
+msgstr "Parolayı Göster"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:14
 msgid "<b>Network Proxy</b>"
-msgstr "<b>网络代理</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:15
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:381
 msgid "On Connect Commands:"
-msgstr "连接时命令:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:16
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:427
 msgid "On Startup Commands:"
-msgstr "启动时命令:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:17
 msgid "<b>Global Commands</b>"
-msgstr "<b>全局命令</b>"
+msgstr "<b>Küresel Komutlar</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:18
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:471
 msgid "C_onnection"
-msgstr "连接(_O)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:19
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:526
 msgid "Timestamp Format:"
-msgstr "时间戳格式:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:20
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:546
 msgid "Buffer Lines:"
-msgstr "缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:21
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:569
 msgid "Engine Buffer Lines:"
-msgstr "引擎缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:22
 msgid ""
@@ -126,51 +127,51 @@ msgid ""
 "dd = day\n"
 "MM = month\n"
 "yy/yyyy = year"
-msgstr "ss = 秒数\nmm = 分数\nhh = 小时数 (01 - 12)\nHH = 小时数 (00 - 23)\ntt = AM/PM\n\ndd = day\nMM = month\nyy/yyyy = year"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:31
 msgid "Persistency Type:"
-msgstr "持久类型:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:32
 msgid "Volatile Buffer Lines:"
-msgstr "临时缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:33
 msgid "Persistent Buffer Lines:"
-msgstr "持久缓冲行数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:34
 msgid "<b>Message Buffer</b>"
-msgstr "<b>信息缓冲</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:35
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:628
 msgid "Strip Colors"
-msgstr "去除颜色"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:36
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:667
 msgid "Strip Formattings"
-msgstr "去除格式"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:37
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:707
 msgid "Strip UTF-8"
-msgstr "去除 UTF-8"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:38
 msgid "Show Advanced Settings"
-msgstr "显示高级设置"
+msgstr "Gelişmiş Ayarları Göster"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:39
 msgid "<b>Advanced</b>"
-msgstr "<b>高级</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:40
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:725
 msgid "General"
-msgstr "全局"
+msgstr "Genel"
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -180,7 +181,7 @@ msgstr "全局"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1220
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1246
 msgid "Top"
-msgstr "顶部"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -190,7 +191,7 @@ msgstr "顶部"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1261
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1286
 msgid "Bottom"
-msgstr "底部"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
@@ -200,7 +201,7 @@ msgstr "底部"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1335
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1361
 msgid "Left"
-msgstr "左边"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox12.Gtk.Box+BoxChild
@@ -210,7 +211,7 @@ msgstr "左边"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1376
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1401
 msgid "Right"
-msgstr "右边"
+msgstr ""
 
 #. Container child vbox6.Gtk.Box+BoxChild
 #. Container child vbox11.Gtk.Box+BoxChild
@@ -220,233 +221,232 @@ msgstr "右边"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1301
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1416
 msgid "None"
-msgstr "无"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:46
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:910
 msgid "<b> Tabs Position </b>"
-msgstr "<b> 标签位置 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:981
 msgid "Highlight"
-msgstr "高亮"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:48
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:961
 msgid "Activity"
-msgstr "活动"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:49
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:953
 msgid "No Activity"
-msgstr "无活动"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:50
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:971
 msgid "Join/Part/Mode"
-msgstr "加入/离开/模式"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:51
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1009
 msgid "<b> Tab Colors </b>"
-msgstr "<b> 标签颜色 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:52
 msgid "Automatically switch to newly opened person chats"
-msgstr "自动切换到新打开的单人聊天"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:53
 msgid "Automatically switch to newly opened group chats"
-msgstr "自动切换到新打开的群组聊天"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "标签"
+msgid "Tree"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
 msgid "Completion Character:"
-msgstr "完成字符:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:56
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1112
 msgid "Command Character:"
-msgstr "命令字符:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:57
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1135
 msgid "Command History Size:"
-msgstr "命令历史数:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1160
 msgid "Bash-Style Completion"
-msgstr "Bash 式完成"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:59
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1172
 msgid "<b> Entry Field </b>"
-msgstr "<b> 预留字段 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:60
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1181
 msgid "Input"
-msgstr "输入"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1202
 msgid "Nick Colors"
-msgstr "昵称颜色"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:62
 msgid "<b> Person List Position </b>"
-msgstr "<b> 成员列表位置 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:63
 msgid "Override"
-msgstr "覆盖"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:64
 msgid "<b> Font </b>"
-msgstr "<b> 字体 </b>"
+msgstr "<b> Yazı Tipi</b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:65
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1315
 msgid "<b> Topic Position </b>"
-msgstr "<b> 主题位置 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:66
 msgid "Foreground"
-msgstr "前景"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:67
 msgid "Background"
-msgstr "背景"
+msgstr "Arkaplan"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:68
 msgid "<b> Color </b>"
-msgstr "<b> 颜色 </b>"
+msgstr "<b> Renk </b>"
 
 #. This is a setting for character based line wrapping vs word based when
 #. showing messages
 #: ../glade/smuxi-frontend-gnome.glade.h:70
 msgid "_Wrap Mode:"
-msgstr "_自动换行模式:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:71
 msgid "<b> Chat </b>"
-msgstr "<b> 聊天 </b>"
+msgstr "<b> Sohbet </b>"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:72
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1466
 msgid "Highlight words:"
-msgstr "高亮单词:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1490
 msgid "Beep on highlight"
-msgstr "高亮时鸣叫"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:74
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1502
 msgid "<b> Highlighting </b>"
-msgstr "<b> 高亮 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:75
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1514
 msgid "Output"
-msgstr "输出"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:76
 msgid "Enable"
-msgstr "启用"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:77
 msgid "Show always"
-msgstr "总是显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:78
 msgid "Show when window is minimized"
-msgstr "当窗口最小化时显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:79
 msgid "Show when window is closed"
-msgstr "当窗口关闭时显示"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:80
 msgid "<b> Notification Area Icon </b>"
-msgstr "<b> 通知区域图标 </b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:81
 msgid "Show Smuxi in the messaging menu"
-msgstr "在消息菜单中显示 Smuxi"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:82
 msgid "<b>Messaging Menu</b>"
-msgstr "<b>消息菜单</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:83
 msgid "Show notification popups"
-msgstr "显示通知弹出"
+msgstr "Bildirim baloncuklarını göster"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:84
 msgid "<b>Notification Popups</b>"
-msgstr "<b>通知弹出</b>"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:85
 msgid "Notification"
-msgstr "通知"
+msgstr "Bildiri"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:86
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1523
 msgid "_Interface"
-msgstr "界面(_I)"
+msgstr "_Arayüz"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1589
 msgid "_Servers"
-msgstr "服务器(_S)"
+msgstr "_Sunucular"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:88
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1681
 msgid "_Filters"
-msgstr "过滤器(_F)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:89
 msgid "Enabled"
-msgstr "启用"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:90
 msgid "Log Filtered Messages"
-msgstr "记录经过滤的消息"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:91
 msgid "_Logging"
-msgstr "历史(_L)"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:92
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerDialog.cs:16
 msgid "Smuxi - Server"
-msgstr "Smuxi - 服务器"
+msgstr "Smuxi - Sunucu"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:209
 msgid "Automatically connect to server at startup"
-msgstr "启动时自动连接到服务器"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:94
 msgid "Protocol:"
-msgstr "协议:"
+msgstr ""
 
 #: ../glade/smuxi-frontend-gnome.glade.h:95
 msgid "Network:"
-msgstr "网络:"
+msgstr "Ağ:"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:96
 msgid "Hostname:"
-msgstr "主机名:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:1
 msgid "Smuxi"
@@ -454,428 +454,428 @@ msgstr "Smuxi"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:2
 msgid "IRC Chat"
-msgstr "IRC 聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:3
 msgid "Smuxi IRC Client"
-msgstr "Smuxi IRC 客户端"
+msgstr "Smuxi IRC İstemci"
 
 #: ../src/Frontend-GNOME/smuxi-frontend-gnome.desktop.in.h:4
 msgid "Chat with other people on IRC"
-msgstr "和 IRC 上的其他人聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/AboutDialog.cs:66
 msgid "translator-credits"
-msgstr "Dean Lee <xslidian+smuxi at gmail.com>"
+msgstr "Umut Albayrak <umutmuh at gmail.com>"
 
 #: ../src/Frontend-GNOME/AboutDialog.cs:73
 msgid "Smuxi Website"
-msgstr "Smuxi 网站"
+msgstr "Smuxi Web sayfası"
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:46
 msgid "Oops, I did it again..."
-msgstr "Oops,我又做了一次..."
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:59
 msgid "Smuxi crashed because an unhandled exception was thrown!"
-msgstr "Smuxi 崩溃了,因为遇到了未处理的意外!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:63
 msgid "Here is the stacktrace, please report this bug!"
-msgstr "这是 stacktrace,请报告错误!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/CrashDialog.cs:83
 msgid "_Report Bug"
-msgstr "报告错误(_R)"
+msgstr "_Hata Bildir"
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:66
 msgid "Engine not found."
-msgstr "引擎未找到。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:81
 msgid "Engine Manager"
-msgstr "引擎管理器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:100
 msgid "Select which Smuxi engine you want to connect to"
-msgstr "选择希望连接到的 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:106
 msgid "Engine:"
-msgstr "引擎:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:117
 msgid "Use Low Bandwidth Mode"
-msgstr "使用低带宽模式"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:141
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:201
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:383
 msgid "Local Engine"
-msgstr "本地引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:193
 msgid "Please select an engine!"
-msgstr "请选择一个引擎!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:219
 #, csharp-format
 msgid "Your frontend version ({0}) does not match the engine version ({1})!"
-msgstr "您的前端版本 ({0}) 与引擎版本 ({1}) 不匹配!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:246
 msgid "An error occurred while connecting to the engine!"
-msgstr "连接到引擎时出现了一个错误!"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:247
 #, csharp-format
 msgid "Engine URL: {0}"
-msgstr "引擎 URL: {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:250
 #, csharp-format
 msgid "Error: {0}"
-msgstr "错误: {0}"
+msgstr "Hata: {0}"
 
 #: ../src/Frontend-GNOME/EngineManagerDialog.cs:320
 #, csharp-format
 msgid "Are you sure you want to delete the engine \"{0}\"?"
-msgstr "您确实要删除引擎 \"{0}\" 吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
-msgstr "您正在粘贴 {0} 行。是否继续?"
+msgstr ""
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
-msgstr "前端命令"
+msgstr ""
 
 #: ../src/Frontend-GNOME/NotImplementedMessageDialog.cs:40
 msgid "Sorry, not implemented yet!"
-msgstr "抱歉,尚未实现!"
+msgstr ""
 
 #. fill ListStore
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:185
 msgid "Character"
-msgstr "字符"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:186
 msgid "Word"
-msgstr "单词"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:203
 msgid "Volatile"
-msgstr "临时"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:205
 msgid "Persistent"
-msgstr "持久"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:228
 msgid "No Proxy"
-msgstr "无代理"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:230
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:326
 msgid "System Default"
-msgstr "系统默认"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:244
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:140
 msgid "Connection"
-msgstr "连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:248
 msgid "Interface"
-msgstr "界面"
+msgstr "Arayüz"
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:252
 msgid "Servers"
-msgstr "服务器"
+msgstr "Sunucular"
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:259
 msgid "Filters"
-msgstr "过滤器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:263
 msgid "Logging"
-msgstr "历史"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
-msgstr "昵称字段不能为空。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
-msgstr "高亮正则表达式无效: '{0}'。原因: {1}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:81
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:106
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:265
 msgid "Name"
-msgstr "名称"
+msgstr "İsim"
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:86
 msgid "Topic"
-msgstr "主题"
+msgstr "Konu"
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:115
 msgid ""
 "Searching for group chats without a filter is not recommended.  This may take a while, or may not work at all.\n"
 "Do you wish to continue?"
-msgstr "不建议不用过滤器搜索群组聊天。可能要耗费一些时间,也可能无法完成搜索。\n您是否打算继续?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/FindGroupChatDialog.cs:156
 msgid "Error while fetching the list of group chats from the server."
-msgstr "从服务器装载群组聊天列表出错。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Frontend.cs:401
 msgid "Disconnected from engine."
-msgstr "从引擎断开连接。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Frontend.cs:443
 #, csharp-format
 msgid "Reconnecting to engine... (attempt {0})"
-msgstr "正在重新连接到引擎... (第 {0} 次尝试)"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
-msgstr "原因: {0}"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
-msgstr "前端与服务器之间的连接已丢失。\n是否希望现在重新连接?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
-msgstr "重新连接到服务器失败。\n是否重试?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
-msgstr "服务器与前端之间的连接已丢失。\n是否希望现在重新连接?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
-msgstr "显示"
+msgstr "Göster"
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:58
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:233
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:70
 msgid "Protocol"
-msgstr "协议"
+msgstr "Protokol"
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:59
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:71
 msgid "Hostname"
-msgstr "主机名"
+msgstr ""
 
 #: ../src/Frontend-GNOME/QuickConnectDialog.cs:162
 msgid "Unable to load server: "
-msgstr "无法加载服务器: "
+msgstr ""
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:54
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:239
 msgid "Person / Private"
-msgstr "成员 / 私聊"
+msgstr ""
 
 #: ../src/Frontend-GNOME/ChatTypeWidget.cs:55
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:240
 msgid "Group / Public"
-msgstr "群组 / 公开"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:71
 msgid "Engine Assistant - Smuxi"
-msgstr "引擎助手 - Smuxi"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:93
 msgid "Add Smuxi Engine"
-msgstr "添加 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:95
 msgid "Edit Smuxi Engine"
-msgstr "编辑 Smuxi 引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:204
 msgid "Credentials"
-msgstr "证书"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:284
 msgid "Now you can use the Smuxi Engine"
-msgstr "现在您可以使用该 Smuxi 引擎了"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:287
 msgid "Thank you"
-msgstr "谢谢您"
+msgstr "Teşekkürler"
 
 #: ../src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs:304
 msgid ""
 "An engine with this name already exists! Please specify a different one."
-msgstr "已存在同名引擎! 请另外指定一个。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/JoinWidget.cs:89
 msgid "Enter which chat to join"
-msgstr "输入要加入的聊天"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
-msgstr "关于 Smuxi"
+msgstr "Smuxi Hakkında"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
-msgstr "偏好设置"
+msgstr "Tercihler"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
-msgstr "无法添加服务器: "
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
-msgstr "切换到本地引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
-msgstr "切换到远程引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
-msgstr "天数由 {0} 变为 {1}"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
-msgstr "日期已改为 {0}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:120
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:130
 #, csharp-format
 msgid "Invalid filter regex: '{0}'. Reason: {1}"
-msgstr "无效的过滤器正则表达式: '{0}'。原因: {1}"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:197
 msgid "Are you sure you want to delete the selected filter?"
-msgstr "您确实要删除选中的过滤器?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:241
 msgid "Protocol / Server"
-msgstr "协议 / 服务器"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:248
 msgid "Chat Type"
-msgstr "聊天类型"
+msgstr "Sohbet Türü"
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:281
 msgid "Normal"
-msgstr "普通"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:282
 msgid "Event"
-msgstr "事件"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:289
 msgid "Type"
-msgstr "类型"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Views/FilterListWidget.cs:314
 msgid "Pattern"
-msgstr "匹配"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
-msgstr "低带宽模式未启用: 未同步任何信息。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
-msgstr "显示菜单栏(_M)"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
-msgstr "正在检索 {0} 的用户列表..."
+msgstr ""
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
-msgstr "完成。"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
-msgstr "成员"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
-msgstr "重新连接"
+msgstr ""
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
-msgstr "关闭该协议将同时关闭所有连接到它的开放聊天!\n您确实希望这么做吗?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:189
 msgid "Are you sure you want to delete the selected server?"
-msgstr "您确实打算删除选中的服务器吗?"
+msgstr ""
 
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:245
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:279
 msgid "Unable to edit server: "
-msgstr "无法编辑服务器: "
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:24
 msgid "Find"
-msgstr "查找"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:44
 msgid "_Search for:"
-msgstr "搜索(_S):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:73
 msgid "_Match Case"
-msgstr "匹配大小写(_M)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:85
 msgid "Search _Backwards"
-msgstr "向上搜索(_B)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:97
 msgid "_Wrap Around"
-msgstr "全文搜索(_W)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ChatFindDialog.cs:110
 msgid "Use _Regular Expressions"
-msgstr "使用正则表达式(_R)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:23
 msgid "Smuxi - Find Group Chat"
-msgstr "Smuxi - 查找群组聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.FindGroupChatDialog.cs:47
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:73
 msgid "_Name:"
-msgstr "名称(_N):"
+msgstr "_İsim:"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.JoinWidget.cs:69
 msgid "Join"
-msgstr "加入"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:56
@@ -885,274 +885,278 @@ msgstr "_Smuxi"
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:58
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:59
 msgid "_Server"
-msgstr "服务器(_S)"
+msgstr "_Sunucu"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:61
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:62
 msgid "_Chat"
-msgstr "聊天(_C)"
+msgstr "_Sohbet"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:64
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:65
 msgid "_Engine"
-msgstr "引擎(_E)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:67
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:68
 msgid "_View"
-msgstr "视图(_V)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:70
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:71
 msgid "_Help"
-msgstr "帮助(_H)"
+msgstr "_Yardım"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:73
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:75
 msgid "Connect"
-msgstr "连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:77
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:79
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:147
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:148
 msgid "Open Log"
-msgstr "打开聊天历史"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:87
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:88
 msgid "_Preferences"
-msgstr "偏好设置(_P)"
+msgstr "_Tercihler"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:90
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:91
 msgid "_Quit"
-msgstr "退出(_Q)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:93
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:94
 msgid "_Connect"
-msgstr "连接(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:96
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:97
 msgid "_Add"
-msgstr "添加(_A)"
+msgstr "_Ekle"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:99
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:100
 msgid "_Manage"
-msgstr "管理(_M)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:102
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:103
 msgid "_Open / Join Chat"
-msgstr "打开(_O) / 加入聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:105
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:106
 msgid "_Find Group Chat"
-msgstr "查找群组聊天(_F)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:108
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:109
 msgid "C_lear All Activity"
-msgstr "清除所有活动(_L)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:111
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:112
 msgid "_Next Chat"
-msgstr "下一个聊天(_N)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:114
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:115
 msgid "_Previous Chat"
-msgstr "上一个聊天(_P)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:117
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:118
 msgid "_Close"
-msgstr "关闭(_C)"
+msgstr "_Kapat"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:120
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:121
 msgid "_Use Local Engine"
-msgstr "使用本地引擎(_U)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:123
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:124
 msgid "_Add Remote Engine"
-msgstr "添加远程引擎(_A)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:126
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:127
 msgid "Switch Remote Engine"
-msgstr "切换远程引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:129
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:130
 msgid "_Caret Mode"
-msgstr "插入模式(_C)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:132
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:133
 msgid "_Browse Mode"
-msgstr "浏览模式(_B)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:138
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:139
 msgid "Show _Statusbar"
-msgstr "显示状态栏(_S)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:141
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:142
 msgid "_Fullscreen"
-msgstr "全屏(_F)"
+msgstr "_Tam Ekran"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:144
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:145
 msgid "_About"
-msgstr "关于(_A)"
+msgstr "_Hakkında"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:150
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:152
 msgid "Find Group Chat"
-msgstr "查找群组聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:154
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:155
 msgid "_Website"
-msgstr "网站(_W)"
+msgstr "_Web sayfası"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:157
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:158
 msgid "Show _Toolbar"
-msgstr "显示工具栏(_T)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.QuickConnectDialog.cs:19
 msgid "Smuxi - Connect"
-msgstr "Smuxi - 连接"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:206
 msgid "Smuxi - Preferences"
-msgstr "Smuxi - 首选项"
+msgstr "Smuxi - Tercihler"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:295
 msgid "Nicknames:"
-msgstr "昵称:"
+msgstr ""
+
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
-msgstr "<b> 用户列表位置 </b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1441
 msgid "<b> Channel </b>"
-msgstr "<b> 频道 </b>"
+msgstr "<b> Kanal </b>"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1652
 msgid "<b>Channel Filters</b>"
-msgstr "<b>频道过滤器</b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1669
 msgid "<b>User Filters</b>"
-msgstr "<b>用户过滤器</b>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:42
 msgid "Use _SSH Tunnel"
-msgstr "使用 _SSH 隧道"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:56
 msgid ""
 "<span size=\"small\">Enables the use of SSH for the connection.  This has a "
 "small performance impact, but is more secure and required when using NAT or "
 "port-based firewalls</span>"
-msgstr "<span size=\"small\">为连接启用 SSH。这对性能有一定影响,但更安全,且使用 NAT 或者基于端口的防火墙时必需</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:135
 msgid "SSH _Host:"
-msgstr "SS_H 主机:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:146
 msgid "<span size=\"small\">DNS or IP address and port of the SSH server</span>"
-msgstr "<span size=\"small\">SSH 服务器的 DNS 或者 IP 地址与端口</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:159
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:173
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:129
 msgid "_Port:"
-msgstr "端口(_P):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:186
 msgid "<span size=\"small\">DNS or IP address and port of the Smuxi server</span>"
-msgstr "<span size=\"small\">Smuxi 服务器的 DNS 或者 IP 地址与端口</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantConnectionWidget.cs:199
 msgid "_Smuxi Host:"
-msgstr "_Smuxi 主机:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:52
 msgid "_SSH Username: (optional)"
-msgstr "_SSH 用户名: (可选)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:75
 msgid ""
 "<span size=\"small\">Username which will be used to log into the SSH "
 "server</span>"
-msgstr "<span size=\"small\">用于登录 SSH 服务器的用户名</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:95
 msgid "_SSH Password: (optional)"
-msgstr "_SSH 密码: (可选)"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:119
 msgid ""
 "<span size=\"small\">Password which will be used to log into the SSH server."
 " The password is optional if SSH key authorization is used (see "
 "below).</span>"
-msgstr "<span size=\"small\">将用于登录 SSH 服务器的密码。若使用了 SSH 密钥(参见下方选项),则密码可选。</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:140
 msgid "_SSH Keyfile: (optional)"
-msgstr "_SSH 密钥文件: (可选)"
+msgstr ""
 
 #. Container child vbox17.Gtk.Box+BoxChild
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:148
 msgid "Select a File"
-msgstr "选择文件"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:161
 msgid ""
 "<span size=\"small\">SSH private keyfile which will be used to log into the "
 "SSH server</span>"
-msgstr "<span size=\"small\">SSH 私钥文件将用于登录 SSH 服务器</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:181
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:188
 msgid "_Username:"
-msgstr "用户名(_U):"
+msgstr "_Kullanıcı adı:"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:204
 msgid ""
 "<span size=\"small\">Username which will be used to log into the Smuxi "
 "server</span>"
-msgstr "<span size=\"small\">将用于登录 Smuxi 服务器的用户名</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:224
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:87
 msgid "_Password:"
-msgstr "密码(_P):"
+msgstr "_Parola:"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:248
 msgid "<span size=\"small\">Password of the user</span>"
-msgstr "<span size=\"small\">用户密码</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:268
 msgid "_Verify Password:"
-msgstr "验证密码(_V):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantCredentialsWidget.cs:292
 msgid "<span size=\"small\">Repeat the password for verification</span>"
-msgstr "<span size=\"small\">请再次输入密码以供验证</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantIntroWidget.cs:19
 msgid ""
@@ -1160,62 +1164,62 @@ msgid ""
 "You need to enter some information before you can use the engine.\n"
 "\n"
 "Click \"Forward\" to begin."
-msgstr "欢迎使用 Smuxi 引擎配置助手。\n在您能够使用引擎之前,需要输入一些信息。\n\n点击“前进”开始。"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:36
 msgid "_Engine Name:"
-msgstr "引擎名称(_E):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:59
 msgid "<span size=\"small\">Profile name of the new engine</span>"
-msgstr "<span size=\"small\">新引擎配置文件的名称</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:80
 msgid "_Default Engine:"
-msgstr "默认引擎(_D):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:91
 msgid "Use as new default engine"
-msgstr "用作新的默认引擎"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.EngineAssistantNameWidget.cs:104
 msgid ""
 "<span size=\"small\">If enabled, the current engine will be the default next"
 " time Smuxi is started</span>"
-msgstr "<span size=\"small\">如果启用,Smuxi 下次启动时当前引擎将作为默认引擎</span>"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:20
 msgid "Smuxi - Open Chat"
-msgstr "Smuxi - 开放聊天"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.OpenChatDialog.cs:63
 msgid "_Type:"
-msgstr "_类型:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:54
 msgid "_Hostname:"
-msgstr "_主机名:"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:75
 msgid "_Network:"
-msgstr "_网络:"
+msgstr "_Ağ:"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:198
 msgid "_Protocol:"
-msgstr "_协议:"
+msgstr "_Protokol:"
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:222
 msgid "Use Encryption"
-msgstr "使用加密"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:234
 msgid "Validate Server Certificate"
-msgstr "验证服务器证书"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:254
 msgid "_On Connect Commands:"
-msgstr "连接时命令(_O):"
+msgstr ""
 
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs:265
 msgid "_Ignore Commands"
-msgstr "忽略命令(_I)"
+msgstr ""
diff --git a/po-Frontend-GNOME/zh_CN.po b/po-Frontend-GNOME/zh_CN.po
index ca3ca96..154d677 100644
--- a/po-Frontend-GNOME/zh_CN.po
+++ b/po-Frontend-GNOME/zh_CN.po
@@ -7,9 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-08-19 17:50+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:04+0100\n"
+"PO-Revision-Date: 2013-12-13 08:04+0000\n"
 "Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -261,9 +261,8 @@ msgid "Automatically switch to newly opened group chats"
 msgstr "自动切换到新打开的群组聊天"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:54
-#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
-msgid "Tabs"
-msgstr "标签"
+msgid "Tree"
+msgstr "树"
 
 #: ../glade/smuxi-frontend-gnome.glade.h:55
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1092
@@ -542,14 +541,14 @@ msgstr "错误: {0}"
 msgid "Are you sure you want to delete the engine \"{0}\"?"
 msgstr "您确实要删除引擎 \"{0}\" 吗?"
 
-#: ../src/Frontend-GNOME/Entry.cs:482
+#: ../src/Frontend-GNOME/Entry.cs:484
 #, csharp-format
 msgid "You are going to paste {0} lines. Do you want to continue?"
 msgstr "您正在粘贴 {0} 行。是否继续?"
 
 #. TRANSLATOR: this line is used as a label / category for a
 #. list of commands below
-#: ../src/Frontend-GNOME/Entry.cs:595
+#: ../src/Frontend-GNOME/Entry.cs:601
 msgid "Frontend Commands"
 msgstr "前端命令"
 
@@ -604,11 +603,11 @@ msgstr "过滤器"
 msgid "Logging"
 msgstr "历史"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:674
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:682
 msgid "Nicknames(s) field must not be empty."
 msgstr "昵称字段不能为空。"
 
-#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:870
+#: ../src/Frontend-GNOME/Preferences/PreferencesDialog.cs:878
 #, csharp-format
 msgid "Invalid highlight regex: '{0}'. Reason: {1}"
 msgstr "高亮正则表达式无效: '{0}'。原因: {1}"
@@ -642,30 +641,30 @@ msgstr "从引擎断开连接。"
 msgid "Reconnecting to engine... (attempt {0})"
 msgstr "正在重新连接到引擎... (第 {0} 次尝试)"
 
-#: ../src/Frontend-GNOME/Frontend.cs:542
+#: ../src/Frontend-GNOME/Frontend.cs:548
 #, csharp-format
 msgid "Cause: {0}"
 msgstr "原因: {0}"
 
-#: ../src/Frontend-GNOME/Frontend.cs:668
+#: ../src/Frontend-GNOME/Frontend.cs:680
 msgid ""
 "The frontend has lost the connection to the server.\n"
 "Do you want to reconnect now?"
 msgstr "前端与服务器之间的连接已丢失。\n是否希望现在重新连接?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:687
+#: ../src/Frontend-GNOME/Frontend.cs:699
 msgid ""
 "Reconnecting to the server has failed.\n"
 "Do you want to try again?"
 msgstr "重新连接到服务器失败。\n是否重试?"
 
-#: ../src/Frontend-GNOME/Frontend.cs:995
+#: ../src/Frontend-GNOME/Frontend.cs:1007
 msgid ""
 "The server has lost the connection to the frontend.\n"
 "Do you want to reconnect now?"
 msgstr "服务器与前端之间的连接已丢失。\n是否希望现在重新连接?"
 
-#: ../src/Frontend-GNOME/NotifyManager.cs:336
+#: ../src/Frontend-GNOME/NotifyManager.cs:338
 msgid "Show"
 msgstr "显示"
 
@@ -727,38 +726,38 @@ msgstr "已存在同名引擎! 请另外指定一个。"
 msgid "Enter which chat to join"
 msgstr "输入要加入的聊天"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:144
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:153
 msgid "About Smuxi"
 msgstr "关于 Smuxi"
 
 #. TODO: add cmd+, accelerator
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:148
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:157
 msgid "Preferences"
 msgstr "偏好设置"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:242
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:251
 #: ../src/Frontend-GNOME/Preferences/ServerListView.cs:227
 msgid "Unable to add server: "
 msgstr "无法添加服务器: "
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:363
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:372
 msgid ""
 "Switching to local engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "切换到本地引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
 
-#: ../src/Frontend-GNOME/Views/MenuWidget.cs:407
+#: ../src/Frontend-GNOME/Views/MenuWidget.cs:416
 msgid ""
 "Switching the remote engine will disconnect you from the current engine!\n"
 "Are you sure you want to do this?"
 msgstr "切换到远程引擎会将您与当前引擎断开!\n您确实大赛这样做吗?"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:274
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:288
 #, csharp-format
 msgid "Day changed from {0} to {1}"
 msgstr "天数由 {0} 变为 {1}"
 
-#: ../src/Frontend-GNOME/Views/MessageTextView.cs:278
+#: ../src/Frontend-GNOME/Views/MessageTextView.cs:292
 #, csharp-format
 msgid "Day changed to {0}"
 msgstr "日期已改为 {0}"
@@ -797,35 +796,35 @@ msgstr "类型"
 msgid "Pattern"
 msgstr "匹配"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:526
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:548
 msgid "Low Bandwidth Mode is active: no messages synced."
 msgstr "低带宽模式未启用: 未同步任何信息。"
 
-#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:752
+#: ../src/Frontend-GNOME/Views/Chats/ChatView.cs:792
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:135
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.MenuWidget.cs:136
 msgid "Show _Menubar"
 msgstr "显示菜单栏(_M)"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:299
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:337
 #, csharp-format
 msgid "Retrieving user list for {0}..."
 msgstr "正在检索 {0} 的用户列表..."
 
 #. TRANSLATOR: this string will be appended to the one above
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:336
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:366
 msgid "done."
 msgstr "完成。"
 
-#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:368
+#: ../src/Frontend-GNOME/Views/Chats/GroupChatView.cs:398
 msgid "Person"
 msgstr "成员"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:109
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:131
 msgid "Reconnect"
 msgstr "重新连接"
 
-#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:154
+#: ../src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs:180
 msgid ""
 "Closing the protocol chat will also close all open chats connected to it!\n"
 "Are you sure you want to do this?"
@@ -1041,6 +1040,10 @@ msgstr "Smuxi - 首选项"
 msgid "Nicknames:"
 msgstr "昵称:"
 
+#: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1022
+msgid "Tabs"
+msgstr "标签"
+
 #: ../src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.SteticPreferencesDialog.cs:1430
 msgid "<b> User List Position </b>"
 msgstr "<b> 用户列表位置 </b>"
diff --git a/po-Frontend/LINGUAS b/po-Frontend/LINGUAS
index 16de36d..1993f1e 100644
--- a/po-Frontend/LINGUAS
+++ b/po-Frontend/LINGUAS
@@ -5,6 +5,8 @@ de
 es
 es_AR
 en_GB
+fa
+fi
 fr
 hr
 it
@@ -12,4 +14,6 @@ pl
 pt
 pt_BR
 sv
+te
+tr
 zh_CN
diff --git a/po-Frontend/POTFILES.skip b/po-Frontend/POTFILES.skip
index c1475e3..eb4cf60 100644
--- a/po-Frontend/POTFILES.skip
+++ b/po-Frontend/POTFILES.skip
@@ -2,6 +2,7 @@ glade/
 src/Common/
 src/Frontend-GNOME/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-STFL/
 src/Frontend-SWF/
@@ -10,8 +11,6 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Server/
diff --git a/po-Frontend/cs.po b/po-Frontend/cs.po
index 10695dd..b5cfc95 100644
--- a/po-Frontend/cs.po
+++ b/po-Frontend/cs.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
 "PO-Revision-Date: 2013-05-22 18:03+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Language: cs\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "Neznámý příkaz: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Nedostatek parametrů pro příkaz {0}"
@@ -79,16 +79,16 @@ msgid ""
 msgstr "Nastavení tunelu SSH selhalo (exit code: {0})\n\nProgram SSH: {1}\nParametry SSH: {2}\n\nChyba programu:\n{3}\nVýstup programu:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "Soubor s klíčem SSH nenalezen."
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "Načtení souboru s klíčem SSH se nezdařilo."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -101,11 +101,11 @@ msgid ""
 "{3}\n"
 msgstr "Nenalezeno číslo verze OpenSSH (exit code: {0})\n\nProgram SSH: {1}\n\nChyba programu:\n{2}\nVýstup programu:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY / Plink potřebuje mít nastavené uživatelské jméno."
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
diff --git a/po-Frontend/da.po b/po-Frontend/da.po
index 0beb976..7d65a3a 100644
--- a/po-Frontend/da.po
+++ b/po-Frontend/da.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
 "PO-Revision-Date: 2013-04-29 08:41+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "Ukendt kommando: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Ikke nok parametre for kommandoen {0}"
@@ -79,16 +79,16 @@ msgid ""
 msgstr "Kunne ikke opsætte SSH-tunnel (afbrydelseskode: {0})\n\nSSH-program: {1}\nSSH-parametre: {2}\n\nProgramfejl:\n{3}\nProgramuddata:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "SSH-nøglefil blev ikke fundet."
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "SSH-nøglefil kunne ikke læses."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -101,11 +101,11 @@ msgid ""
 "{3}\n"
 msgstr "Versionnummer for OpenSSH blev ikke fundet (afbrydelseskode: {0})\n\nSSH-program: {1}\n\nProgramfejl:\n{2}\nProgramuddata:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY / Plink kræver at et brugernavn er angivet."
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
diff --git a/po-Frontend/de.po b/po-Frontend/de.po
index b7d7a4f..d1c3398 100644
--- a/po-Frontend/de.po
+++ b/po-Frontend/de.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
 "PO-Revision-Date: 2013-04-29 08:41+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "Unbekannter Befehl: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Nicht genügend Parameter für Kommando {0}"
@@ -79,16 +79,16 @@ msgid ""
 msgstr "Aufbau des SSH-Tunnels ist fehlgeschlagen (Exit-Code: {0})\n\nSSH-Programm: {1}\nSSH-Parameter: {2}\n\nProgramm-Fehler:\n{3}\nProgramm-Ausgabe:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "SSH Schlüssel-Datei nicht gefunden."
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "SSH Schlüssel-Datei konnte nicht gelesen werden."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -101,11 +101,11 @@ msgid ""
 "{3}\n"
 msgstr "OpenSSH-Version konnte nicht ermittelt werden (Exit-Code: {0})\n\nSSH-Programm: {1}\n\nProgramm-Fehler:\n{2}\nProgramm-Ausgabe:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY / Plink fordert einen gesetzten Benutzernamen."
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
diff --git a/po-Frontend/es.po b/po-Frontend/es.po
index e824332..2e1d8a8 100644
--- a/po-Frontend/es.po
+++ b/po-Frontend/es.po
@@ -1,48 +1,71 @@
-# Smuxi - IRC client for sophisticated users
-# Copyright (C) 2005-2009 Mirco Bauer <meebey at meebey.net>
-# This file is distributed under the same license as the Smuxi package.
-# Juan Miguel Carrero <streinleght at gmail.com>, 2008-2009.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
 # 
+# Translators:
+# toote, 2013
+# Ricardo Hermosilla <ra.hermosillac at gmail.com>, 2012
 msgid ""
 msgstr ""
-"Project-Id-Version: smuxi 0.6.4\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2009-08-12 17:11+0100\n"
-"Last-Translator: Juan Miguel Carrero <streinleght at gmail.com>\n"
-"Language-Team: Spanish Spanish Localization <debian-l10n-spanish at lists.debian.org>\n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-12-10 18:57+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:143
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
-msgstr "Comando desconocido: {0}"
+msgstr "Orden desconocida: {0}"
 
-#: ../src/Frontend/EngineManager.cs:292
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
-msgid "Unknown channel ({0}) - only the following channel types are supported:"
-msgstr "Canal desconocido ({0}), solo los siguientes tipos de canales están soportados:"
+msgid "Not enough parameters for {0} command"
+msgstr "Faltan parámetros para la orden {0}"
 
-#: ../src/Frontend/EngineManager.cs:301
-msgid "Registration with engine failed!  The username and/or password were wrong - please verify them."
-msgstr "Registro en el motor fallido! El usuario y/o la contraseña son erróneos. Por favor, verifíquelos. "
+#: ../src/Frontend/EngineManager.cs:122
+msgid "Engine must not be empty."
+msgstr "El motor no puede estar vacío."
 
-#: ../src/Frontend/SshTunnelManager.cs:146
+#: ../src/Frontend/EngineManager.cs:133
+msgid "Engine does not exist."
+msgstr "El motor no existe."
+
+#: ../src/Frontend/EngineManager.cs:317
+#, csharp-format
+msgid ""
+"Unknown channel ({0}) - only the following channel types are supported:"
+msgstr "Canal desconocido ({0}) - sólo se es compatible con los siguientes tipos de canales:"
+
+#: ../src/Frontend/EngineManager.cs:326
+msgid ""
+"Registration with engine failed!  The username and/or password were wrong - "
+"please verify them."
+msgstr "¡Falló la registración con el motor! El usuario y/o la contraseña son inválidos - verifíquelos. "
+
+#: ../src/Frontend/SshTunnelManager.cs:144
 msgid "SSH client application was not found: "
-msgstr "El programa del cliente SSH no se ha encontrado:"
+msgstr "No se encontró el programa del cliente SSH:"
 
-#: ../src/Frontend/SshTunnelManager.cs:149
-msgid "SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
+#: ../src/Frontend/SshTunnelManager.cs:147
+msgid ""
+"SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
 msgstr "El cliente SSH debe ser OpenSSH (ssh) o Plink (plink.exe, no putty.exe)"
 
-#: ../src/Frontend/SshTunnelManager.cs:186
+#: ../src/Frontend/SshTunnelManager.cs:184
 #, csharp-format
-msgid "The local SSH forwarding port {0} is already in use. Is there an old SSH tunnel still active?"
-msgstr "El puerto local SSH {0} está actualmente en uso. ¿Existe un tunel SSH antiguo activo aún?"
+msgid ""
+"The local SSH forwarding port {0} is already in use. Is there an old SSH "
+"tunnel still active?"
+msgstr "El puerto local SSH {0} está actualmente en uso. ¿Existe todavía un túnel SSH antiguo activo?"
 
-#: ../src/Frontend/SshTunnelManager.cs:210
+#: ../src/Frontend/SshTunnelManager.cs:208
 #, csharp-format
 msgid ""
 "SSH tunnel setup failed (exit code: {0})\n"
@@ -54,18 +77,19 @@ msgid ""
 "{3}\n"
 "Program Output:\n"
 "{4}\n"
-msgstr ""
-"Configuración del tunel SHH fallida (código de salida: {0})\n"
-"\n"
-"Programa SSH: {1}\n"
-"Parámetros SSH: {2}\n"
-"\n"
-"Error:\n"
-"{3}\n"
-"Salida:\n"
-"{4}\n"
+msgstr "Falló la configuración del túnel SSH (código de salida: {0})\n\nPrograma SSH: {1}\nParámetros SSH: {2}\n\nError del programa:\n{3}\nSalida del programa:\n{4}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:405
+#: ../src/Frontend/SshTunnelManager.cs:329
+#: ../src/Frontend/SshTunnelManager.cs:478
+msgid "SSH keyfile not found."
+msgstr "No se econtró el archivo de claves SSH."
+
+#: ../src/Frontend/SshTunnelManager.cs:335
+#: ../src/Frontend/SshTunnelManager.cs:484
+msgid "SSH keyfile could not be read."
+msgstr "No se pudo leer el archivo de claves SSH."
+
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -76,16 +100,21 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr ""
-"No ha sido posible obtener la versión de OpenSSH (código de salida: {0})\n"
+msgstr "No ha sido posible obtener la versión de OpenSSH (código de salida: {0})\n\nPrograma SSH: {1}\n\nError del programa:\n{2}\nSalida del programa:\n{3}\n"
+
+#: ../src/Frontend/SshTunnelManager.cs:469
+msgid "PuTTY / Plink requires a username to be set."
+msgstr "PuTTY / Plink necesita que configure un usuario."
+
+#: ../src/Frontend/SshTunnelManager.cs:557
+#, csharp-format
+msgid ""
+"Plink version number not found (exit code: {0})\n"
 "\n"
-"Programa SSH: {1}\n"
+"SSH program: {1}\n"
 "\n"
-"Error del programa:\n"
+"Program Error:\n"
 "{2}\n"
-"Salida del programa:\n"
+"Program Output:\n"
 "{3}\n"
-
-#: ../src/Frontend/SshTunnelManager.cs:441
-msgid "PuTTY / Plink requires a username to be set."
-msgstr "PuTTY / Plink necesita que se establezca un usuario."
+msgstr "No se encontró la versión de Plink (código de salida: {0})\n\nPrograma SSH: {1}\n\nError del programa:\n{2}\n\nSalida del programa:\n{3}\n"
diff --git a/po-Frontend/zh_CN.po b/po-Frontend/fa.po
similarity index 56%
copy from po-Frontend/zh_CN.po
copy to po-Frontend/fa.po
index 950921b..539731d 100644
--- a/po-Frontend/zh_CN.po
+++ b/po-Frontend/fa.po
@@ -3,66 +3,66 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012-2013
+# Behrooz Amoozad <behrooz0az at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-08-19 12:56+0000\n"
+"Last-Translator: Behrooz Amoozad <behrooz0az at gmail.com>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
+"Language: fa\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
-msgstr "未知命令: {0}"
+msgstr "دستور ناشناخته: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "{0} 命令参数不足"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:122
 msgid "Engine must not be empty."
-msgstr "引擎不能为空。"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:133
 msgid "Engine does not exist."
-msgstr "引擎不存在。"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:317
 #, csharp-format
 msgid ""
 "Unknown channel ({0}) - only the following channel types are supported:"
-msgstr "未知频道 ({0}) - 仅支持下列频道类型:"
+msgstr "کانال ناشناخته ({0}) فقط کانال های ذیل پشتیبانی میشوند. "
 
 #: ../src/Frontend/EngineManager.cs:326
 msgid ""
 "Registration with engine failed!  The username and/or password were wrong - "
 "please verify them."
-msgstr "引擎注册失败!  用户名和/或密码错误 - 请验证。"
+msgstr "ثبت نام نا موفق بود.نام کاربر و/یا رمز نادرست بودند - لطفا از صحت آنها اطمینان پیدا کنید."
 
 #: ../src/Frontend/SshTunnelManager.cs:144
 msgid "SSH client application was not found: "
-msgstr "未找到 SSH 客户端应用程序: "
+msgstr "برنامه ssh پیدا نشد:"
 
 #: ../src/Frontend/SshTunnelManager.cs:147
 msgid ""
 "SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
-msgstr "SSH 客户端必须为 OpenSSH (ssh) 或 Plink (plink.exe, 而非 putty.exe)"
+msgstr "برنامه ssh باید یا OpenSSH(ssh) و یا PLink(plink.exe و نه putty.exe) باشد."
 
 #: ../src/Frontend/SshTunnelManager.cs:184
 #, csharp-format
 msgid ""
 "The local SSH forwarding port {0} is already in use. Is there an old SSH "
 "tunnel still active?"
-msgstr "本地 SSH 转发端口 {0} 已被占用。是不是还有旧版 SSH 隧道处于活动状态?"
+msgstr "درگاه داخلی {0} در حال ساتفاده است؟ آیا یک تونل قدیمی ssh هنوز فعال است؟"
 
 #: ../src/Frontend/SshTunnelManager.cs:208
 #, csharp-format
@@ -76,19 +76,19 @@ msgid ""
 "{3}\n"
 "Program Output:\n"
 "{4}\n"
-msgstr "SSH 隧道安装失败 (退出代码: {0})\n\nSSH 程序: {1}\nSSH 参数: {2}\n\n程序错误:\n{3}\n程序输出:\n{4}\n"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
-msgstr "未找到 SSH 密钥文件。"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
-msgstr "无法读取 SSH 密钥文件。"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -99,13 +99,13 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "未发现 OpenSSH 版本号 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
-msgstr "PuTTY / Plink 需要设置用户名。"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
@@ -116,4 +116,4 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "Plink 版本号未找到 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
+msgstr ""
diff --git a/po-Frontend/da.po b/po-Frontend/fi.po
similarity index 54%
copy from po-Frontend/da.po
copy to po-Frontend/fi.po
index 0beb976..b80809f 100644
--- a/po-Frontend/da.po
+++ b/po-Frontend/fi.po
@@ -3,66 +3,66 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Joe Hansen <joedalton2 at yahoo.dk>, 2011,2013
+# Kalle Kaitala <cobrian at cobrian.net>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-08-23 06:09+0000\n"
+"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: da\n"
+"Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
-msgstr "Ukendt kommando: {0}"
+msgstr "Tuntematon komento: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "Ikke nok parametre for kommandoen {0}"
+msgstr "Ei tarpeeksi parametrejä {0} -komennolle"
 
 #: ../src/Frontend/EngineManager.cs:122
 msgid "Engine must not be empty."
-msgstr "Motor må ikke være tom."
+msgstr "Moottori ei saa olla tyhjä."
 
 #: ../src/Frontend/EngineManager.cs:133
 msgid "Engine does not exist."
-msgstr "Motor findes ikke."
+msgstr "Moottoria ei ole olemassa."
 
 #: ../src/Frontend/EngineManager.cs:317
 #, csharp-format
 msgid ""
 "Unknown channel ({0}) - only the following channel types are supported:"
-msgstr "Ukendt kanal ({0}) - kun de følgende kanaltyper er understøttet:"
+msgstr "Tuntematon kanava ({0}) - vain seuraavia kanavatyyppejä tuetaan:"
 
 #: ../src/Frontend/EngineManager.cs:326
 msgid ""
 "Registration with engine failed!  The username and/or password were wrong - "
 "please verify them."
-msgstr "Registrering med motor mislykkedes! Brugernavnet og/eller adgangskoden var forkert - bekræft dem venligst."
+msgstr "Rekisteröinti moottorin kanssa epäonnistui! Käyttäjänimi ja/tai salasana väärin - ole hyvä ja tarkista ne."
 
 #: ../src/Frontend/SshTunnelManager.cs:144
 msgid "SSH client application was not found: "
-msgstr "SSH-klientprogram blev ikke fundet: "
+msgstr "SSH-asiakasohjelmaa ei löytynyt:"
 
 #: ../src/Frontend/SshTunnelManager.cs:147
 msgid ""
 "SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
-msgstr "SSH-klient skal enten være OpenSSH (ssh) eller Plink (plink.exe, ikke putty.exe)"
+msgstr "SSH-asiakasohjelman on oltava OpenSSH (ssh) tai Plink (plink.exe, ei putty.exe)"
 
 #: ../src/Frontend/SshTunnelManager.cs:184
 #, csharp-format
 msgid ""
 "The local SSH forwarding port {0} is already in use. Is there an old SSH "
 "tunnel still active?"
-msgstr "Den lokale SSH-videresendelsesport {0} er allerede i brug. Er der en gammel SSH-tunnel, der stadig er aktiv?"
+msgstr "Paikallinen SSH-edelleenohjausportti {0} on jo käytössä. Onko vanha SSH-tunneli edelleen aktiivinen?"
 
 #: ../src/Frontend/SshTunnelManager.cs:208
 #, csharp-format
@@ -76,19 +76,19 @@ msgid ""
 "{3}\n"
 "Program Output:\n"
 "{4}\n"
-msgstr "Kunne ikke opsætte SSH-tunnel (afbrydelseskode: {0})\n\nSSH-program: {1}\nSSH-parametre: {2}\n\nProgramfejl:\n{3}\nProgramuddata:\n{4}\n"
+msgstr "SSH-tunnelin pystytys epäonnistui (exit-koodi: {0})\n\nSSH-ohjelma: {1}\nSSH-parametrit: {2}\n\nOhjelmavirhe:\n{3}\nOhjelman tuloste:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
-msgstr "SSH-nøglefil blev ikke fundet."
+msgstr "SSH-avaintiedostoa ei löytynyt."
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
-msgstr "SSH-nøglefil kunne ikke læses."
+msgstr "SSH-avaintiedostoa ei voitu lukea."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -99,13 +99,13 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "Versionnummer for OpenSSH blev ikke fundet (afbrydelseskode: {0})\n\nSSH-program: {1}\n\nProgramfejl:\n{2}\nProgramuddata:\n{3}\n"
+msgstr "OpenSSH:n versionumeroa ei löytynyt (exit-koodi: {0})\n\nSSH-ohjelma: {1}\n\nOhjelmavirhe:\n{2}\nOhjelman tuloste:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
-msgstr "PuTTY / Plink kræver at et brugernavn er angivet."
+msgstr "PuTTY / Plink vaatii että käyttäjänimi on asetettu."
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
@@ -116,4 +116,4 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "Plink-versionsnummer blev ikke fundet (afslutningskode: {0})\n\nSSH-program: {1}\n\nProgramfejl:\n{2}\nProgramuddata:\n{3}\n"
+msgstr "Plink:in versionumeroa ei löytynyt (exit-koodi: {0})\n\nSSH-ohjelma: {1}\n\nOhjelmavirhe:\n{2}\nOhjelman tuloste:\n{3}\n"
diff --git a/po-Frontend/fr.po b/po-Frontend/fr.po
index 44b40ab..452b763 100644
--- a/po-Frontend/fr.po
+++ b/po-Frontend/fr.po
@@ -1,29 +1,29 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
-# Clément Bourgeois <moonpyk at gmail.com>, 2011.
+# Clément Bourgeois <moonpyk at gmail.com>, 2011
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:17+0200\n"
-"PO-Revision-Date: 2013-04-10 22:38+0100\n"
-"Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "Commande inconnue : {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Pas assez de paramètres pour la commande {0}"
@@ -38,17 +38,15 @@ msgstr "Le moteur n'existe pas."
 
 #: ../src/Frontend/EngineManager.cs:317
 #, csharp-format
-msgid "Unknown channel ({0}) - only the following channel types are supported:"
-msgstr ""
-"Canal inconnu ({0}), seuls les types de canaux suivants sont supportés :"
+msgid ""
+"Unknown channel ({0}) - only the following channel types are supported:"
+msgstr "Canal inconnu ({0}), seuls les types de canaux suivants sont supportés :"
 
 #: ../src/Frontend/EngineManager.cs:326
 msgid ""
 "Registration with engine failed!  The username and/or password were wrong - "
 "please verify them."
-msgstr ""
-"Impossible de s'enregistrer auprès du moteur, le nom d'utilisateur et/ou le "
-"mot de passe était(ent) mauvais, veuillez le(s) vérifier."
+msgstr "Impossible de s'enregistrer auprès du moteur, le nom d'utilisateur et/ou le mot de passe était(ent) mauvais, veuillez le(s) vérifier."
 
 #: ../src/Frontend/SshTunnelManager.cs:144
 msgid "SSH client application was not found: "
@@ -57,18 +55,14 @@ msgstr "L'application SSH client n'a pas été trouvée :"
 #: ../src/Frontend/SshTunnelManager.cs:147
 msgid ""
 "SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
-msgstr ""
-"Le client SSH doit être soit OpenSSH (ssh) ou Plink (plink.exe, et non putty."
-"exe)"
+msgstr "Le client SSH doit être soit OpenSSH (ssh) ou Plink (plink.exe, et non putty.exe)"
 
 #: ../src/Frontend/SshTunnelManager.cs:184
 #, csharp-format
 msgid ""
 "The local SSH forwarding port {0} is already in use. Is there an old SSH "
 "tunnel still active?"
-msgstr ""
-"La redirection locale de port {0} est toujours en cours d'utilisation. "
-"L'ancien tunnel SSH est-il toujours actif ?"
+msgstr "La redirection locale de port {0} est toujours en cours d'utilisation. L'ancien tunnel SSH est-il toujours actif ?"
 
 #: ../src/Frontend/SshTunnelManager.cs:208
 #, csharp-format
@@ -82,28 +76,19 @@ msgid ""
 "{3}\n"
 "Program Output:\n"
 "{4}\n"
-msgstr ""
-"Mise en route du tunnel SSH  échouée (code de sortie : {0})\n"
-"\n"
-"Programme SSH : {1}\n"
-"Paramètres SSH : {2}\n"
-"\n"
-"Erreur du programme :\n"
-"{3}\n"
-"Sortie du programme :\n"
-"{4}\n"
+msgstr "Mise en route du tunnel SSH  échouée (code de sortie : {0})\n\nProgramme SSH : {1}\nParamètres SSH : {2}\n\nErreur du programme :\n{3}\nSortie du programme :\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "Fichier de clé SSH introuvable"
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "Impossible de lire le fichier de clé SSH."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -114,21 +99,13 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr ""
-"Impossible de trouver la version d'OpenSSH (code de sortie: {0})\n"
-"\n"
-"Programme SSH: {1}\n"
-"\n"
-"Erreur du programme:\n"
-"{2}\n"
-"Sortie du programme:\n"
-"{3}\n"
+msgstr "Impossible de trouver la version d'OpenSSH (code de sortie: {0})\n\nProgramme SSH: {1}\n\nErreur du programme:\n{2}\nSortie du programme:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY ou Plink nécessitent un nom d'utilisateur pour fonctionner."
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
@@ -139,12 +116,4 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr ""
-"Numéro de version Plink non trouvé (code de retour : {0})\n"
-"\n"
-"Programme SSH : {1}\n"
-"\n"
-"Erreur du programme : \n"
-"{2}\n"
-"Sortie du programme : \n"
-"{3}\n"
+msgstr "Numéro de version Plink non trouvé (code de retour : {0})\n\nProgramme SSH : {1}\n\nErreur du programme : \n{2}\nSortie du programme : \n{3}\n"
diff --git a/po-Frontend/pt_BR.po b/po-Frontend/pt_BR.po
index 9ed9d2f..a735cf4 100644
--- a/po-Frontend/pt_BR.po
+++ b/po-Frontend/pt_BR.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:18+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
 "PO-Revision-Date: 2013-07-15 00:19+0000\n"
 "Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:255
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "Comando desconhecido: {0}"
 
-#: ../src/Frontend/CommandManager.cs:264
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Parâmetro insuficiente para o comando {0}"
@@ -79,16 +79,16 @@ msgid ""
 msgstr "Criação do Tunel SSh falhou (código de saída: {0})\n\nPrograma SSH: {1}\nParâmetros SSH: {2}\n\nErro do programa:\n{3}\nSaída do programa:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "Arquivo-chave SSH não encontrado."
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "Arquivo-chave SSH não pôde ser lido."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -101,11 +101,11 @@ msgid ""
 "{3}\n"
 msgstr "Versão do OpenSSH não encontrada (código de saída: {0})\n\nPrograma SSH: {1}\n\nErro do programa:\n{2}\nSaída do programa:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY / Plink necessita de um nome de usuário para ser usado. "
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
diff --git a/po-Frontend/sv.po b/po-Frontend/sv.po
index 44f15a1..dea29c1 100644
--- a/po-Frontend/sv.po
+++ b/po-Frontend/sv.po
@@ -8,10 +8,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-12-10 13:32+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,12 +19,12 @@ msgstr ""
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "Okänt kommando: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "Inte tillräckligt med parametrar för kommandot {0}"
@@ -80,16 +80,16 @@ msgid ""
 msgstr "Fel vid upprättande av SSH-tunnel (felkod: {0})\n\nSSH-applikation: {1}\nSSH-parameterar: {2}\n\nApplikationsfel:\n{3}\nUtdata från applikation:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "SSH-nyckelfil hittades inte."
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "SSH-nyckelfilen kunde inte läsas."
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -102,11 +102,11 @@ msgid ""
 "{3}\n"
 msgstr "Versionsnummer för OpenSSH kunde inte hittas (felkod: {0})\n\nSSH-applikation: {1}\n\nApplikationsfel:\n{2}\nUtdata från applikation:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY/Plink kräver att ett användarnamn används."
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
diff --git a/po-Frontend/zh_CN.po b/po-Frontend/te.po
similarity index 56%
copy from po-Frontend/zh_CN.po
copy to po-Frontend/te.po
index 950921b..8d2db84 100644
--- a/po-Frontend/zh_CN.po
+++ b/po-Frontend/te.po
@@ -3,66 +3,65 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-12-10 18:22+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
-msgstr "未知命令: {0}"
+msgstr ""
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "{0} 命令参数不足"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:122
 msgid "Engine must not be empty."
-msgstr "引擎不能为空。"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:133
 msgid "Engine does not exist."
-msgstr "引擎不存在。"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:317
 #, csharp-format
 msgid ""
 "Unknown channel ({0}) - only the following channel types are supported:"
-msgstr "未知频道 ({0}) - 仅支持下列频道类型:"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:326
 msgid ""
 "Registration with engine failed!  The username and/or password were wrong - "
 "please verify them."
-msgstr "引擎注册失败!  用户名和/或密码错误 - 请验证。"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:144
 msgid "SSH client application was not found: "
-msgstr "未找到 SSH 客户端应用程序: "
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:147
 msgid ""
 "SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
-msgstr "SSH 客户端必须为 OpenSSH (ssh) 或 Plink (plink.exe, 而非 putty.exe)"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:184
 #, csharp-format
 msgid ""
 "The local SSH forwarding port {0} is already in use. Is there an old SSH "
 "tunnel still active?"
-msgstr "本地 SSH 转发端口 {0} 已被占用。是不是还有旧版 SSH 隧道处于活动状态?"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:208
 #, csharp-format
@@ -76,19 +75,19 @@ msgid ""
 "{3}\n"
 "Program Output:\n"
 "{4}\n"
-msgstr "SSH 隧道安装失败 (退出代码: {0})\n\nSSH 程序: {1}\nSSH 参数: {2}\n\n程序错误:\n{3}\n程序输出:\n{4}\n"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
-msgstr "未找到 SSH 密钥文件。"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
-msgstr "无法读取 SSH 密钥文件。"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -99,13 +98,13 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "未发现 OpenSSH 版本号 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
-msgstr "PuTTY / Plink 需要设置用户名。"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
@@ -116,4 +115,4 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "Plink 版本号未找到 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
+msgstr ""
diff --git a/po-Frontend/zh_CN.po b/po-Frontend/tr.po
similarity index 57%
copy from po-Frontend/zh_CN.po
copy to po-Frontend/tr.po
index 950921b..99b316a 100644
--- a/po-Frontend/zh_CN.po
+++ b/po-Frontend/tr.po
@@ -3,66 +3,65 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012-2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
 "PO-Revision-Date: 2013-04-29 08:41+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
-msgstr "未知命令: {0}"
+msgstr ""
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
-msgstr "{0} 命令参数不足"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:122
 msgid "Engine must not be empty."
-msgstr "引擎不能为空。"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:133
 msgid "Engine does not exist."
-msgstr "引擎不存在。"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:317
 #, csharp-format
 msgid ""
 "Unknown channel ({0}) - only the following channel types are supported:"
-msgstr "未知频道 ({0}) - 仅支持下列频道类型:"
+msgstr ""
 
 #: ../src/Frontend/EngineManager.cs:326
 msgid ""
 "Registration with engine failed!  The username and/or password were wrong - "
 "please verify them."
-msgstr "引擎注册失败!  用户名和/或密码错误 - 请验证。"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:144
 msgid "SSH client application was not found: "
-msgstr "未找到 SSH 客户端应用程序: "
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:147
 msgid ""
 "SSH client must be either OpenSSH (ssh) or Plink (plink.exe, not putty.exe)"
-msgstr "SSH 客户端必须为 OpenSSH (ssh) 或 Plink (plink.exe, 而非 putty.exe)"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:184
 #, csharp-format
 msgid ""
 "The local SSH forwarding port {0} is already in use. Is there an old SSH "
 "tunnel still active?"
-msgstr "本地 SSH 转发端口 {0} 已被占用。是不是还有旧版 SSH 隧道处于活动状态?"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:208
 #, csharp-format
@@ -76,19 +75,19 @@ msgid ""
 "{3}\n"
 "Program Output:\n"
 "{4}\n"
-msgstr "SSH 隧道安装失败 (退出代码: {0})\n\nSSH 程序: {1}\nSSH 参数: {2}\n\n程序错误:\n{3}\n程序输出:\n{4}\n"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
-msgstr "未找到 SSH 密钥文件。"
+msgstr ""
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
-msgstr "无法读取 SSH 密钥文件。"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -99,13 +98,13 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "未发现 OpenSSH 版本号 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
-msgstr "PuTTY / Plink 需要设置用户名。"
+msgstr ""
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
@@ -116,4 +115,4 @@ msgid ""
 "{2}\n"
 "Program Output:\n"
 "{3}\n"
-msgstr "Plink 版本号未找到 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
+msgstr ""
diff --git a/po-Frontend/zh_CN.po b/po-Frontend/zh_CN.po
index 950921b..e4ed164 100644
--- a/po-Frontend/zh_CN.po
+++ b/po-Frontend/zh_CN.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:09+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:03+0100\n"
+"PO-Revision-Date: 2013-12-13 08:18+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,12 +18,12 @@ msgstr ""
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ../src/Frontend/CommandManager.cs:311
+#: ../src/Frontend/CommandManager.cs:343
 #, csharp-format
 msgid "Unknown Command: {0}"
 msgstr "未知命令: {0}"
 
-#: ../src/Frontend/CommandManager.cs:320
+#: ../src/Frontend/CommandManager.cs:352
 #, csharp-format
 msgid "Not enough parameters for {0} command"
 msgstr "{0} 命令参数不足"
@@ -79,16 +79,16 @@ msgid ""
 msgstr "SSH 隧道安装失败 (退出代码: {0})\n\nSSH 程序: {1}\nSSH 参数: {2}\n\n程序错误:\n{3}\n程序输出:\n{4}\n"
 
 #: ../src/Frontend/SshTunnelManager.cs:329
-#: ../src/Frontend/SshTunnelManager.cs:475
+#: ../src/Frontend/SshTunnelManager.cs:478
 msgid "SSH keyfile not found."
 msgstr "未找到 SSH 密钥文件。"
 
 #: ../src/Frontend/SshTunnelManager.cs:335
-#: ../src/Frontend/SshTunnelManager.cs:481
+#: ../src/Frontend/SshTunnelManager.cs:484
 msgid "SSH keyfile could not be read."
 msgstr "无法读取 SSH 密钥文件。"
 
-#: ../src/Frontend/SshTunnelManager.cs:423
+#: ../src/Frontend/SshTunnelManager.cs:426
 #, csharp-format
 msgid ""
 "OpenSSH version number not found (exit code: {0})\n"
@@ -101,11 +101,11 @@ msgid ""
 "{3}\n"
 msgstr "未发现 OpenSSH 版本号 (退出代码: {0})\n\nSSH 程序: {1}\n\n程序错误:\n{2}\n程序输出:\n{3}\n"
 
-#: ../src/Frontend/SshTunnelManager.cs:466
+#: ../src/Frontend/SshTunnelManager.cs:469
 msgid "PuTTY / Plink requires a username to be set."
 msgstr "PuTTY / Plink 需要设置用户名。"
 
-#: ../src/Frontend/SshTunnelManager.cs:554
+#: ../src/Frontend/SshTunnelManager.cs:557
 #, csharp-format
 msgid ""
 "Plink version number not found (exit code: {0})\n"
diff --git a/po-Server/LINGUAS b/po-Server/LINGUAS
index 95cc3bb..264d6ae 100644
--- a/po-Server/LINGUAS
+++ b/po-Server/LINGUAS
@@ -2,6 +2,8 @@ cs
 da
 de
 es
+fa
+fi
 fr
 hr
 it
@@ -9,4 +11,6 @@ pl
 pt
 pt_BR
 sv
+te
+tr
 zh_CN
diff --git a/po-Server/POTFILES.skip b/po-Server/POTFILES.skip
index 5694bf0..7707916 100644
--- a/po-Server/POTFILES.skip
+++ b/po-Server/POTFILES.skip
@@ -4,12 +4,11 @@ src/Engine/
 src/Engine-Campfire/
 src/Engine-IRC/
 src/Engine-JabbR/
-src/Engine-MSNP/
-src/Engine-OSCAR/
 src/Engine-XMPP/
 src/Engine-Twitter/
 src/Frontend/
 src/Frontend-GNOME-IRC/
+src/Frontend-GNOME-Twitter/
 src/Frontend-GNOME-XMPP/
 src/Frontend-GNOME/
 src/Frontend-STFL/
diff --git a/po-Server/cs.po b/po-Server/cs.po
index caf0e05..d9a49b6 100644
--- a/po-Server/cs.po
+++ b/po-Server/cs.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
 "PO-Revision-Date: 2013-05-22 17:22+0000\n"
 "Last-Translator: Ondřej Hošek <ondra.hosek at gmail.com>\n"
 "Language-Team: Czech (http://www.transifex.com/projects/p/smuxi/language/cs/)\n"
diff --git a/po-Server/da.po b/po-Server/da.po
index 1a0273d..532f792 100644
--- a/po-Server/da.po
+++ b/po-Server/da.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
 "PO-Revision-Date: 2013-04-29 08:41+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/smuxi/language/da/)\n"
diff --git a/po-Server/de.po b/po-Server/de.po
index c286785..4094f6a 100644
--- a/po-Server/de.po
+++ b/po-Server/de.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
 "PO-Revision-Date: 2013-04-29 08:41+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/smuxi/language/de/)\n"
diff --git a/po-Server/es.po b/po-Server/es.po
index aeb0cb3..908dde5 100644
--- a/po-Server/es.po
+++ b/po-Server/es.po
@@ -1,109 +1,133 @@
-# po-Server/smuxi-server.pot Spanish translation file
-# Copyright (C) 2010
-# This file is distributed under the same license as the Smuxi - IRC Client package.
-# Ricardo A. Hermosilla Carrillo <ra.hermosillac at gmail.com>, 2010.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# toote, 2013
+# Ricardo Hermosilla <ra.hermosillac at gmail.com>, 2012
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-02 15:23+0200\n"
-"PO-Revision-Date: 2010-09-12 23:30-0400\n"
-"Last-Translator: Ricardo A. Hermosilla Carrillo <ra.hermosillac at gmail.com>\n"
-"Language-Team: Spanish <ES at li.org>\n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-12-10 19:01+0000\n"
+"Last-Translator: toote\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/smuxi/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/Server/Main.cs:69
+#: ../src/Server/Main.cs:71
 msgid "Add user to Server"
-msgstr "Agregar usuario al Servidor"
+msgstr "Agregar usuario al servidor"
 
-#: ../src/Server/Main.cs:78
+#: ../src/Server/Main.cs:80
 msgid "Modify existing user of Server"
-msgstr "Modificar un usuario existente del Servidor"
+msgstr "Modificar un usuario existente en el servidor"
 
-#: ../src/Server/Main.cs:87
+#: ../src/Server/Main.cs:89
 msgid "Delete user from Server"
-msgstr "Borrar usuario del Servidor"
+msgstr "Borrar usuario del servidor"
 
-#: ../src/Server/Main.cs:96
+#: ../src/Server/Main.cs:98
 msgid "List all existing users of Server"
-msgstr "Listar todos los usuarios existentes del Servidor"
+msgstr "Enumerar todos los usuarios existentes en el servidor"
 
-#: ../src/Server/Main.cs:105
+#: ../src/Server/Main.cs:107
 msgid "User to create, modify or delete"
 msgstr "Usuario a crear, modificar o borrar"
 
-#: ../src/Server/Main.cs:114
+#: ../src/Server/Main.cs:116
 msgid "Password of the user when creating or modifying a user"
 msgstr "Contraseña del usuario que se está creando o modificando"
 
-#: ../src/Server/Main.cs:123
+#: ../src/Server/Main.cs:125
 msgid "Enable debug output"
 msgstr "Habilitar salida de depuración"
 
-#: ../src/Server/Main.cs:131
+#: ../src/Server/Main.cs:133
+msgid ""
+"Optimize message buffers and exit (valid values: none, defrag, index, all)"
+msgstr "Optimizar buffers de mensaje y salida (valores válidos: none, defrag, index, all)"
+
+#: ../src/Server/Main.cs:146
 msgid "Show this help"
 msgstr "Mostrar esta ayuda"
 
-#: ../src/Server/Main.cs:133
+#: ../src/Server/Main.cs:148
 msgid "Usage: smuxi-server [options]"
 msgstr "Modo de uso: smuxi-server [opciones]"
 
-#: ../src/Server/Main.cs:135
+#: ../src/Server/Main.cs:150
 msgid "Options:"
 msgstr "Opciones:"
 
-#: ../src/Server/Main.cs:146
+#: ../src/Server/Main.cs:161
 #, csharp-format
 msgid "Unknown option: '{0}'"
-msgstr "Opción desconocida: '{0}'"
+msgstr "Opción desconocida: «{0}»"
 
-#: ../src/Server/Main.cs:170
+#: ../src/Server/Main.cs:188
 #, csharp-format
 msgid "Command line error: {0}"
-msgstr "Error de línea de comandos: {0}"
+msgstr "Error de línea de órdenes: {0}"
 
-#: ../src/Server/Main.cs:214
+#: ../src/Server/Main.cs:232
 msgid ""
-"At most one of --add-user, --modify-user, and --delete-user may be used at a "
-"time."
-msgstr ""
-"A lo más una de las opciones --add-user, --modify-user y --delete-user pueden "
-"ser usadas al mismo tiempo."
+"At most one of --add-user, --modify-user, and --delete-user may be used at a"
+" time."
+msgstr "Sólo puede utilizar una de las siguientes opciones al mismo tiempo: --add-user, --modify-user o --delete-user."
 
-#: ../src/Server/Main.cs:224
+#: ../src/Server/Main.cs:242
 msgid "You must specify a username with the --username option."
-msgstr "Debe especificar un nombre de usuario con la opción --username"
+msgstr "Debe especificar un nombre de usuario con la opción --username."
 
-#: ../src/Server/Main.cs:230
+#: ../src/Server/Main.cs:248
 msgid "Username must not be empty."
-msgstr "Nombre de Usuario no puede estar vacío."
+msgstr "El nombre de usuario no puede estar vacío."
 
-#: ../src/Server/Main.cs:240
+#: ../src/Server/Main.cs:258
 msgid "You must specify a password with the --password option."
-msgstr "Debe especificar una contraseña con la opción --password"
+msgstr "Debe especificar una contraseña con la opción --password."
 
-#: ../src/Server/Main.cs:246
+#: ../src/Server/Main.cs:264
 msgid "Password must not be empty."
-msgstr "Contraseña no puede estar vacía."
+msgstr "La contraseña no puede estar vacía."
 
-#: ../src/Server/Main.cs:263
+#: ../src/Server/Main.cs:283
+#, csharp-format
+msgid ""
+"Invalid optimization value passed to --optimize-message-buffer, valid values"
+" are: {0}"
+msgstr "Se pasó un valor de optimización inválido a pasado --optimize-message-buffer, los valores válidos son: {0}"
+
+#: ../src/Server/Main.cs:303
 #, csharp-format
 msgid "User \"{0}\" successfully added to server."
-msgstr "El usuario \"{0}\" ha sido añadido satisfactoriamente al servidor."
+msgstr "Se ha añadido correctamente el usuario «{0}» al servidor."
 
-#: ../src/Server/Main.cs:272
+#: ../src/Server/Main.cs:312
 #, csharp-format
 msgid "User \"{0}\" successfully modified."
-msgstr "El usuario \"{0}\" ha sido modificado satisfactoriamente."
+msgstr "Se ha modificado correctamente el usuario «{0}»."
 
-#: ../src/Server/Main.cs:281
+#: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr "El usuario \"{0}\" ha sido borrado satisfactoriamente del servidor."
+msgstr "Se ha borrado correctamente el usuario «{0}» del servidor."
 
-#: ../src/Server/Main.cs:288
+#: ../src/Server/Main.cs:328
 msgid "Users:"
 msgstr "Usuarios:"
+
+#: ../src/Server/Main.cs:376
+#, csharp-format
+msgid "Successfully optimized {0} message buffers."
+msgstr "Se optimizaron correctamente {0} buffers de mensaje."
+
+#: ../src/Server/Main.cs:389
+#, csharp-format
+msgid "Failed to optimize message buffers: {0}"
+msgstr "Fallo al optimizar buffers de mensaje: {0}"
diff --git a/po-Server/zh_CN.po b/po-Server/fa.po
similarity index 63%
copy from po-Server/zh_CN.po
copy to po-Server/fa.po
index 6a0915f..b14a538 100644
--- a/po-Server/zh_CN.po
+++ b/po-Server/fa.po
@@ -3,130 +3,129 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-08-19 12:20+0000\n"
 "Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/smuxi/language/fa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
+"Language: fa\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
 #: ../src/Server/Main.cs:71
 msgid "Add user to Server"
-msgstr "将用户添加到服务器"
+msgstr ""
 
 #: ../src/Server/Main.cs:80
 msgid "Modify existing user of Server"
-msgstr "修改服务器上现存的用户"
+msgstr ""
 
 #: ../src/Server/Main.cs:89
 msgid "Delete user from Server"
-msgstr "将用户从服务器删除"
+msgstr ""
 
 #: ../src/Server/Main.cs:98
 msgid "List all existing users of Server"
-msgstr "列出服务器上所有现存的用户"
+msgstr ""
 
 #: ../src/Server/Main.cs:107
 msgid "User to create, modify or delete"
-msgstr "要创建、修改或删除的用户"
+msgstr ""
 
 #: ../src/Server/Main.cs:116
 msgid "Password of the user when creating or modifying a user"
-msgstr "要创建或修改的用户的密码"
+msgstr ""
 
 #: ../src/Server/Main.cs:125
 msgid "Enable debug output"
-msgstr "启用调试输出"
+msgstr ""
 
 #: ../src/Server/Main.cs:133
 msgid ""
 "Optimize message buffers and exit (valid values: none, defrag, index, all)"
-msgstr "优化信息缓存并退出 (有效值: none、defrag、index、all)"
+msgstr ""
 
 #: ../src/Server/Main.cs:146
 msgid "Show this help"
-msgstr "显示本帮助"
+msgstr ""
 
 #: ../src/Server/Main.cs:148
 msgid "Usage: smuxi-server [options]"
-msgstr "用法: smuxi-server [选项]"
+msgstr ""
 
 #: ../src/Server/Main.cs:150
 msgid "Options:"
-msgstr "选项:"
+msgstr ""
 
 #: ../src/Server/Main.cs:161
 #, csharp-format
 msgid "Unknown option: '{0}'"
-msgstr "未知选项: '{0}'"
+msgstr ""
 
 #: ../src/Server/Main.cs:188
 #, csharp-format
 msgid "Command line error: {0}"
-msgstr "命令行错误: {0}"
+msgstr ""
 
 #: ../src/Server/Main.cs:232
 msgid ""
 "At most one of --add-user, --modify-user, and --delete-user may be used at a"
 " time."
-msgstr "--add-user、--modify-user 与 --delete-user 三者每次只能用一个。"
+msgstr ""
 
 #: ../src/Server/Main.cs:242
 msgid "You must specify a username with the --username option."
-msgstr "您必须通过 --username 选项指定用户名。"
+msgstr ""
 
 #: ../src/Server/Main.cs:248
 msgid "Username must not be empty."
-msgstr "用户名不能为空。"
+msgstr ""
 
 #: ../src/Server/Main.cs:258
 msgid "You must specify a password with the --password option."
-msgstr "您必须通过 --password 选项指定密码。"
+msgstr ""
 
 #: ../src/Server/Main.cs:264
 msgid "Password must not be empty."
-msgstr "密码不能为空。"
+msgstr ""
 
 #: ../src/Server/Main.cs:283
 #, csharp-format
 msgid ""
 "Invalid optimization value passed to --optimize-message-buffer, valid values"
 " are: {0}"
-msgstr "传递给 --optimize-message-buffer 的优化参数值无效,有效值有: {0}"
+msgstr ""
 
 #: ../src/Server/Main.cs:303
 #, csharp-format
 msgid "User \"{0}\" successfully added to server."
-msgstr "成功将用户 \"{0}\" 添加到服务器。"
+msgstr ""
 
 #: ../src/Server/Main.cs:312
 #, csharp-format
 msgid "User \"{0}\" successfully modified."
-msgstr "成功修改用户 \"{0}\"。"
+msgstr ""
 
 #: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr "成功将用户 \"{0}\" 从服务器删除。"
+msgstr ""
 
 #: ../src/Server/Main.cs:328
 msgid "Users:"
-msgstr "用户:"
+msgstr ""
 
 #: ../src/Server/Main.cs:376
 #, csharp-format
 msgid "Successfully optimized {0} message buffers."
-msgstr "成功优化 {0} 块信息缓存。"
+msgstr ""
 
 #: ../src/Server/Main.cs:389
 #, csharp-format
 msgid "Failed to optimize message buffers: {0}"
-msgstr "无法优化信息缓存: {0}"
+msgstr ""
diff --git a/po-Server/sv.po b/po-Server/fi.po
similarity index 58%
copy from po-Server/sv.po
copy to po-Server/fi.po
index 1d50bf7..0ebea33 100644
--- a/po-Server/sv.po
+++ b/po-Server/fi.po
@@ -3,130 +3,130 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# flugsio <flugsio at gmail.com>, 2011
+# Kalle Kaitala <cobrian at cobrian.net>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-08-23 06:17+0000\n"
+"Last-Translator: Kalle Kaitala <cobrian at cobrian.net>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/smuxi/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
+"Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../src/Server/Main.cs:71
 msgid "Add user to Server"
-msgstr "Lägg till användare till server"
+msgstr "Lisää käyttäjä palvelimeen"
 
 #: ../src/Server/Main.cs:80
 msgid "Modify existing user of Server"
-msgstr "Redigera existerande användare på server"
+msgstr "Muokkaa olemassaolevaa palvelimen käyttäjää"
 
 #: ../src/Server/Main.cs:89
 msgid "Delete user from Server"
-msgstr "Radera användare från server"
+msgstr "Poista käyttäjä palvelimelta"
 
 #: ../src/Server/Main.cs:98
 msgid "List all existing users of Server"
-msgstr "Visa alla existerande användare på Server"
+msgstr "Listaa kaikki palvelimen käyttäjät"
 
 #: ../src/Server/Main.cs:107
 msgid "User to create, modify or delete"
-msgstr "Användare att skapa, redigera eller radera"
+msgstr "Luotava, muokattava tai poistettava käyttäjä"
 
 #: ../src/Server/Main.cs:116
 msgid "Password of the user when creating or modifying a user"
-msgstr "Lösenord för användaren som skapas eller redigeras"
+msgstr "Käyttäjän salasana, jos luodaan tai muokataan käyttäjää"
 
 #: ../src/Server/Main.cs:125
 msgid "Enable debug output"
-msgstr "Aktivera utskrift av fellogg"
+msgstr "Vianetsinnän tuloste päälle"
 
 #: ../src/Server/Main.cs:133
 msgid ""
 "Optimize message buffers and exit (valid values: none, defrag, index, all)"
-msgstr "Optimera meddelandebuffertarna och avsluta (giltiga värden: none, defrag, index, all)"
+msgstr "Optimoi viestipuskurit ja poistu (validit arvot: none, defrag, index, all)"
 
 #: ../src/Server/Main.cs:146
 msgid "Show this help"
-msgstr "Visa den här hjälpen"
+msgstr "Näytä tämä aputeksti"
 
 #: ../src/Server/Main.cs:148
 msgid "Usage: smuxi-server [options]"
-msgstr "Använding: smuxi-server [flaggor]"
+msgstr "Käyttö: smuxi-server [vaihtoehdot]"
 
 #: ../src/Server/Main.cs:150
 msgid "Options:"
-msgstr "Flaggor:"
+msgstr "Vaihtoehdot:"
 
 #: ../src/Server/Main.cs:161
 #, csharp-format
 msgid "Unknown option: '{0}'"
-msgstr "Okänt alternativ: \"{0}\""
+msgstr "Tuntematon vaihtoehto: '{0}'"
 
 #: ../src/Server/Main.cs:188
 #, csharp-format
 msgid "Command line error: {0}"
-msgstr "Komandoradsfel: {0}"
+msgstr "Komentorivin virhe: {0}"
 
 #: ../src/Server/Main.cs:232
 msgid ""
 "At most one of --add-user, --modify-user, and --delete-user may be used at a"
 " time."
-msgstr "Endast en av --add-user, --modify-user eller --delete-user kan användas i taget."
+msgstr "Vain yhtä komennoista --add-user, --modify-user tai --delete-user voi käyttää kerralla."
 
 #: ../src/Server/Main.cs:242
 msgid "You must specify a username with the --username option."
-msgstr "Du måste ange ett användarnamn med flaggan --username."
+msgstr "Käyttäjänimen ilmoittaminen --username -komennolla on pakollista."
 
 #: ../src/Server/Main.cs:248
 msgid "Username must not be empty."
-msgstr "Användarnamnet får inte vara tomt."
+msgstr "Käyttäjänimi ei saa olla tyhjä."
 
 #: ../src/Server/Main.cs:258
 msgid "You must specify a password with the --password option."
-msgstr "Du måste ange ett lösenord med flaggan --pasword."
+msgstr "Salasanan ilmoittaminen --password -vaihtoehdolla on pakollista."
 
 #: ../src/Server/Main.cs:264
 msgid "Password must not be empty."
-msgstr "Lösenordet kan inte vara tomt."
+msgstr "Salasana ei saa olla tyhjä."
 
 #: ../src/Server/Main.cs:283
 #, csharp-format
 msgid ""
 "Invalid optimization value passed to --optimize-message-buffer, valid values"
 " are: {0}"
-msgstr "Ogiltigt optimeringsvärde för --optimize-message-buffer, giltiga värden är: {0}"
+msgstr "Epäkelpo optimointiarvo välitetty komennolle --optimize-message-buffer, kelvolliset arvot ovat: {0}"
 
 #: ../src/Server/Main.cs:303
 #, csharp-format
 msgid "User \"{0}\" successfully added to server."
-msgstr "Användaren \"{0}\" lades till korrekt i servern."
+msgstr "Käyttäjä \"{0}\" lisätty palvelimelle onnistuneesti."
 
 #: ../src/Server/Main.cs:312
 #, csharp-format
 msgid "User \"{0}\" successfully modified."
-msgstr "Användaren \"{0}\" redigerades utan besvär."
+msgstr "Käyttäjää \"{0}\" muokattu onnistuneesti."
 
 #: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr "Användaren \"{0}\" raderades från servern utan besvär."
+msgstr "Käyttäjä \"{0}\" poistettu palvelimelta onnistuneesti."
 
 #: ../src/Server/Main.cs:328
 msgid "Users:"
-msgstr "Användare:"
+msgstr "Käyttäjät:"
 
 #: ../src/Server/Main.cs:376
 #, csharp-format
 msgid "Successfully optimized {0} message buffers."
-msgstr "Lyckades optimera {0} meddelandebufftertar."
+msgstr "{0} viestipuskuria optimoitu onnistuneesti."
 
 #: ../src/Server/Main.cs:389
 #, csharp-format
 msgid "Failed to optimize message buffers: {0}"
-msgstr "Misslyckades att optimera buffertar: {0}"
+msgstr "Viestipuskurien optimointi epäonnistui: {0}"
diff --git a/po-Server/fr.po b/po-Server/fr.po
index 8918c3d..a360a11 100644
--- a/po-Server/fr.po
+++ b/po-Server/fr.po
@@ -1,22 +1,22 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
-# Clément Bourgeois <moonpyk at gmail.com>, 2011.
+# Clément Bourgeois <moonpyk at gmail.com>, 2011
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-19 12:17+0200\n"
-"PO-Revision-Date: 2011-12-30 23:04+0000\n"
-"Last-Translator: Clément Bourgeois <moonpyk at gmail.com>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/smuxi/team/fr/)\n"
-"Language: fr\n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-04-29 08:41+0000\n"
+"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/smuxi/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../src/Server/Main.cs:71
 msgid "Add user to Server"
@@ -40,8 +40,7 @@ msgstr "Utilisateur à créer, modifier ou supprimer"
 
 #: ../src/Server/Main.cs:116
 msgid "Password of the user when creating or modifying a user"
-msgstr ""
-"Mot de passe utilisé pendant la création ou la modification d'un utilisateur."
+msgstr "Mot de passe utilisé pendant la création ou la modification d'un utilisateur."
 
 #: ../src/Server/Main.cs:125
 msgid "Enable debug output"
@@ -50,9 +49,7 @@ msgstr "Activer la sortie de déboguage"
 #: ../src/Server/Main.cs:133
 msgid ""
 "Optimize message buffers and exit (valid values: none, defrag, index, all)"
-msgstr ""
-"Optimiser les tampons de messages et sortir (valeurs valides: none, defrag, "
-"index, all)"
+msgstr "Optimiser les tampons de messages et sortir (valeurs valides: none, defrag, index, all)"
 
 #: ../src/Server/Main.cs:146
 msgid "Show this help"
@@ -78,11 +75,9 @@ msgstr "Erreur de ligne de commande : {0}"
 
 #: ../src/Server/Main.cs:232
 msgid ""
-"At most one of --add-user, --modify-user, and --delete-user may be used at a "
-"time."
-msgstr ""
-"Les options -a|--add-user ou -m|--modify-user et -d|-delete-user ne peuvent "
-"pas être utilisées en même temps."
+"At most one of --add-user, --modify-user, and --delete-user may be used at a"
+" time."
+msgstr "Les options -a|--add-user ou -m|--modify-user et -d|-delete-user ne peuvent pas être utilisées en même temps."
 
 #: ../src/Server/Main.cs:242
 msgid "You must specify a username with the --username option."
@@ -103,11 +98,9 @@ msgstr "Le mot de passe ne peut pas être vide."
 #: ../src/Server/Main.cs:283
 #, csharp-format
 msgid ""
-"Invalid optimization value passed to --optimize-message-buffer, valid values "
-"are: {0}"
-msgstr ""
-"Valeur d'optimisation passée à --optimize-message-buffer invalide, les "
-"valeurs valides sont : {0}"
+"Invalid optimization value passed to --optimize-message-buffer, valid values"
+" are: {0}"
+msgstr "Valeur d'optimisation passée à --optimize-message-buffer invalide, les valeurs valides sont : {0}"
 
 #: ../src/Server/Main.cs:303
 #, csharp-format
@@ -122,8 +115,7 @@ msgstr "L'utilisateur \"{0}\" a été modifié avec succès."
 #: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr ""
-"L'utilisateur : \"{0}\" a été supprimé de la configuration avec succès."
+msgstr "L'utilisateur : \"{0}\" a été supprimé de la configuration avec succès."
 
 #: ../src/Server/Main.cs:328
 msgid "Users:"
diff --git a/po-Server/pt_BR.po b/po-Server/pt_BR.po
index d217e85..94bfb12 100644
--- a/po-Server/pt_BR.po
+++ b/po-Server/pt_BR.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-04-14 10:16+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
 "PO-Revision-Date: 2013-07-10 20:52+0000\n"
 "Last-Translator: Leonardopf <leonardo at piresfelix.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/smuxi/language/pt_BR/)\n"
diff --git a/po-Server/sv.po b/po-Server/sv.po
index 1d50bf7..bf3146a 100644
--- a/po-Server/sv.po
+++ b/po-Server/sv.po
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # flugsio <flugsio at gmail.com>, 2011
+# Martin Bagge <brother at bsnet.se>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-12-10 14:46+0000\n"
+"Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/smuxi/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -32,7 +33,7 @@ msgstr "Radera användare från server"
 
 #: ../src/Server/Main.cs:98
 msgid "List all existing users of Server"
-msgstr "Visa alla existerande användare på Server"
+msgstr "Visa alla existerande användare på server"
 
 #: ../src/Server/Main.cs:107
 msgid "User to create, modify or delete"
@@ -66,7 +67,7 @@ msgstr "Flaggor:"
 #: ../src/Server/Main.cs:161
 #, csharp-format
 msgid "Unknown option: '{0}'"
-msgstr "Okänt alternativ: \"{0}\""
+msgstr "Okänd flagga: \"{0}\""
 
 #: ../src/Server/Main.cs:188
 #, csharp-format
@@ -110,12 +111,12 @@ msgstr "Användaren \"{0}\" lades till korrekt i servern."
 #: ../src/Server/Main.cs:312
 #, csharp-format
 msgid "User \"{0}\" successfully modified."
-msgstr "Användaren \"{0}\" redigerades utan besvär."
+msgstr "Användaren \"{0}\" redigerad.."
 
 #: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr "Användaren \"{0}\" raderades från servern utan besvär."
+msgstr "Användaren \"{0}\" raderades från servern."
 
 #: ../src/Server/Main.cs:328
 msgid "Users:"
diff --git a/po-Server/zh_CN.po b/po-Server/te.po
similarity index 61%
copy from po-Server/zh_CN.po
copy to po-Server/te.po
index 6a0915f..3f56237 100644
--- a/po-Server/zh_CN.po
+++ b/po-Server/te.po
@@ -3,130 +3,130 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012
+# ప్రవీణ్ ఇళ్ళ <mail2ipn at gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-12-12 04:49+0000\n"
+"Last-Translator: ప్రవీణ్ ఇళ్ళ <mail2ipn at gmail.com>\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/smuxi/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../src/Server/Main.cs:71
 msgid "Add user to Server"
-msgstr "将用户添加到服务器"
+msgstr "వాడుకరిని సేవకానికి జతచేయి"
 
 #: ../src/Server/Main.cs:80
 msgid "Modify existing user of Server"
-msgstr "修改服务器上现存的用户"
+msgstr "సేవకములో ఉన్నటువంటి వాడుకరిని సవరించు"
 
 #: ../src/Server/Main.cs:89
 msgid "Delete user from Server"
-msgstr "将用户从服务器删除"
+msgstr "వాడుకరిని సేవకము నుండి తొలగించు"
 
 #: ../src/Server/Main.cs:98
 msgid "List all existing users of Server"
-msgstr "列出服务器上所有现存的用户"
+msgstr ""
 
 #: ../src/Server/Main.cs:107
 msgid "User to create, modify or delete"
-msgstr "要创建、修改或删除的用户"
+msgstr ""
 
 #: ../src/Server/Main.cs:116
 msgid "Password of the user when creating or modifying a user"
-msgstr "要创建或修改的用户的密码"
+msgstr ""
 
 #: ../src/Server/Main.cs:125
 msgid "Enable debug output"
-msgstr "启用调试输出"
+msgstr ""
 
 #: ../src/Server/Main.cs:133
 msgid ""
 "Optimize message buffers and exit (valid values: none, defrag, index, all)"
-msgstr "优化信息缓存并退出 (有效值: none、defrag、index、all)"
+msgstr ""
 
 #: ../src/Server/Main.cs:146
 msgid "Show this help"
-msgstr "显示本帮助"
+msgstr "ఈ సహాయాన్ని చూపించు"
 
 #: ../src/Server/Main.cs:148
 msgid "Usage: smuxi-server [options]"
-msgstr "用法: smuxi-server [选项]"
+msgstr ""
 
 #: ../src/Server/Main.cs:150
 msgid "Options:"
-msgstr "选项:"
+msgstr "ఐచ్ఛికాలు:"
 
 #: ../src/Server/Main.cs:161
 #, csharp-format
 msgid "Unknown option: '{0}'"
-msgstr "未知选项: '{0}'"
+msgstr ""
 
 #: ../src/Server/Main.cs:188
 #, csharp-format
 msgid "Command line error: {0}"
-msgstr "命令行错误: {0}"
+msgstr ""
 
 #: ../src/Server/Main.cs:232
 msgid ""
 "At most one of --add-user, --modify-user, and --delete-user may be used at a"
 " time."
-msgstr "--add-user、--modify-user 与 --delete-user 三者每次只能用一个。"
+msgstr ""
 
 #: ../src/Server/Main.cs:242
 msgid "You must specify a username with the --username option."
-msgstr "您必须通过 --username 选项指定用户名。"
+msgstr ""
 
 #: ../src/Server/Main.cs:248
 msgid "Username must not be empty."
-msgstr "用户名不能为空。"
+msgstr "వాడుకరిపేరు ఖాళీగా ఉండకూడదు."
 
 #: ../src/Server/Main.cs:258
 msgid "You must specify a password with the --password option."
-msgstr "您必须通过 --password 选项指定密码。"
+msgstr ""
 
 #: ../src/Server/Main.cs:264
 msgid "Password must not be empty."
-msgstr "密码不能为空。"
+msgstr "సంకేతపదం ఖాళీగా ఉండకూడదు."
 
 #: ../src/Server/Main.cs:283
 #, csharp-format
 msgid ""
 "Invalid optimization value passed to --optimize-message-buffer, valid values"
 " are: {0}"
-msgstr "传递给 --optimize-message-buffer 的优化参数值无效,有效值有: {0}"
+msgstr ""
 
 #: ../src/Server/Main.cs:303
 #, csharp-format
 msgid "User \"{0}\" successfully added to server."
-msgstr "成功将用户 \"{0}\" 添加到服务器。"
+msgstr ""
 
 #: ../src/Server/Main.cs:312
 #, csharp-format
 msgid "User \"{0}\" successfully modified."
-msgstr "成功修改用户 \"{0}\"。"
+msgstr ""
 
 #: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr "成功将用户 \"{0}\" 从服务器删除。"
+msgstr ""
 
 #: ../src/Server/Main.cs:328
 msgid "Users:"
-msgstr "用户:"
+msgstr "వాడుకరులు:"
 
 #: ../src/Server/Main.cs:376
 #, csharp-format
 msgid "Successfully optimized {0} message buffers."
-msgstr "成功优化 {0} 块信息缓存。"
+msgstr ""
 
 #: ../src/Server/Main.cs:389
 #, csharp-format
 msgid "Failed to optimize message buffers: {0}"
-msgstr "无法优化信息缓存: {0}"
+msgstr ""
diff --git a/po-Server/zh_CN.po b/po-Server/tr.po
similarity index 61%
copy from po-Server/zh_CN.po
copy to po-Server/tr.po
index 6a0915f..d698d76 100644
--- a/po-Server/zh_CN.po
+++ b/po-Server/tr.po
@@ -3,130 +3,130 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dean Lee <xslidian at gmail.com>, 2012
+# Umut Albayrak <umutmuh at gmail.com>, 2011,2013
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-09-06 16:23+0000\n"
+"Last-Translator: Umut Albayrak <umutmuh at gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/smuxi/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: ../src/Server/Main.cs:71
 msgid "Add user to Server"
-msgstr "将用户添加到服务器"
+msgstr "Sunucuya bir kişi ekle"
 
 #: ../src/Server/Main.cs:80
 msgid "Modify existing user of Server"
-msgstr "修改服务器上现存的用户"
+msgstr "Sunucudaki kişiyi değiştir"
 
 #: ../src/Server/Main.cs:89
 msgid "Delete user from Server"
-msgstr "将用户从服务器删除"
+msgstr "Sunucudaki kişiyi sil"
 
 #: ../src/Server/Main.cs:98
 msgid "List all existing users of Server"
-msgstr "列出服务器上所有现存的用户"
+msgstr "Sunucudaki tüm kişileri listele"
 
 #: ../src/Server/Main.cs:107
 msgid "User to create, modify or delete"
-msgstr "要创建、修改或删除的用户"
+msgstr "Oluşturulacak, değiştirilecek ya da silinecek kişiler"
 
 #: ../src/Server/Main.cs:116
 msgid "Password of the user when creating or modifying a user"
-msgstr "要创建或修改的用户的密码"
+msgstr "Oluştururken ya da değiştirirken kişinin şifresi"
 
 #: ../src/Server/Main.cs:125
 msgid "Enable debug output"
-msgstr "启用调试输出"
+msgstr ""
 
 #: ../src/Server/Main.cs:133
 msgid ""
 "Optimize message buffers and exit (valid values: none, defrag, index, all)"
-msgstr "优化信息缓存并退出 (有效值: none、defrag、index、all)"
+msgstr ""
 
 #: ../src/Server/Main.cs:146
 msgid "Show this help"
-msgstr "显示本帮助"
+msgstr "Yardımı göster"
 
 #: ../src/Server/Main.cs:148
 msgid "Usage: smuxi-server [options]"
-msgstr "用法: smuxi-server [选项]"
+msgstr ""
 
 #: ../src/Server/Main.cs:150
 msgid "Options:"
-msgstr "选项:"
+msgstr "Tercihler:"
 
 #: ../src/Server/Main.cs:161
 #, csharp-format
 msgid "Unknown option: '{0}'"
-msgstr "未知选项: '{0}'"
+msgstr "Bilinmeyen tercih: '{0}'"
 
 #: ../src/Server/Main.cs:188
 #, csharp-format
 msgid "Command line error: {0}"
-msgstr "命令行错误: {0}"
+msgstr "Komut satırı hatası: '{0}'"
 
 #: ../src/Server/Main.cs:232
 msgid ""
 "At most one of --add-user, --modify-user, and --delete-user may be used at a"
 " time."
-msgstr "--add-user、--modify-user 与 --delete-user 三者每次只能用一个。"
+msgstr ""
 
 #: ../src/Server/Main.cs:242
 msgid "You must specify a username with the --username option."
-msgstr "您必须通过 --username 选项指定用户名。"
+msgstr ""
 
 #: ../src/Server/Main.cs:248
 msgid "Username must not be empty."
-msgstr "用户名不能为空。"
+msgstr "Kullanıcı adı boş olmamalı"
 
 #: ../src/Server/Main.cs:258
 msgid "You must specify a password with the --password option."
-msgstr "您必须通过 --password 选项指定密码。"
+msgstr ""
 
 #: ../src/Server/Main.cs:264
 msgid "Password must not be empty."
-msgstr "密码不能为空。"
+msgstr "Şifre boş olmamalı"
 
 #: ../src/Server/Main.cs:283
 #, csharp-format
 msgid ""
 "Invalid optimization value passed to --optimize-message-buffer, valid values"
 " are: {0}"
-msgstr "传递给 --optimize-message-buffer 的优化参数值无效,有效值有: {0}"
+msgstr ""
 
 #: ../src/Server/Main.cs:303
 #, csharp-format
 msgid "User \"{0}\" successfully added to server."
-msgstr "成功将用户 \"{0}\" 添加到服务器。"
+msgstr "\"{0}\" kişisi başarıyla sunucuya eklendi"
 
 #: ../src/Server/Main.cs:312
 #, csharp-format
 msgid "User \"{0}\" successfully modified."
-msgstr "成功修改用户 \"{0}\"。"
+msgstr "\"{0}\" kişisi başarıyla değiştirildi"
 
 #: ../src/Server/Main.cs:321
 #, csharp-format
 msgid "User \"{0}\" successfully deleted from server."
-msgstr "成功将用户 \"{0}\" 从服务器删除。"
+msgstr "\"{0}\" kişisi başarıyla sunucudan silindi"
 
 #: ../src/Server/Main.cs:328
 msgid "Users:"
-msgstr "用户:"
+msgstr "Kişiler:"
 
 #: ../src/Server/Main.cs:376
 #, csharp-format
 msgid "Successfully optimized {0} message buffers."
-msgstr "成功优化 {0} 块信息缓存。"
+msgstr ""
 
 #: ../src/Server/Main.cs:389
 #, csharp-format
 msgid "Failed to optimize message buffers: {0}"
-msgstr "无法优化信息缓存: {0}"
+msgstr ""
diff --git a/po-Server/zh_CN.po b/po-Server/zh_CN.po
index 6a0915f..1f37ebe 100644
--- a/po-Server/zh_CN.po
+++ b/po-Server/zh_CN.po
@@ -7,10 +7,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Smuxi - IRC client\n"
-"Report-Msgid-Bugs-To: http://www.smuxi.org/issues\n"
-"POT-Creation-Date: 2013-08-19 14:08+0200\n"
-"PO-Revision-Date: 2013-04-29 08:41+0000\n"
-"Last-Translator: Mirco Bauer <meebey at gmail.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-12-11 17:02+0100\n"
+"PO-Revision-Date: 2013-12-13 08:10+0000\n"
+"Last-Translator: Dean Lee <xslidian at gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/smuxi/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
diff --git a/src/AssemblyVersion.cs b/src/AssemblyVersion.cs
index 07d16fa..9cd48b8 100644
--- a/src/AssemblyVersion.cs
+++ b/src/AssemblyVersion.cs
@@ -36,5 +36,5 @@ using System.Runtime.CompilerServices;
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
-[assembly: AssemblyVersion("0.9")]
+[assembly: AssemblyVersion("0.10")]
 
diff --git a/src/Common/Defines.cs b/src/Common/Defines.cs
index c6a791e..2d0463b 100644
--- a/src/Common/Defines.cs
+++ b/src/Common/Defines.cs
@@ -27,10 +27,10 @@ namespace Smuxi.Common
     public static class Defines
     {
         public const string GitBranch   = "master";
-        public const string GitCommitHash = "082f74b";
+        public const string GitCommitHash = "4136a63";
 
         private static readonly string f_InstallPrefix = "/usr/local";
-        private static readonly string f_DistVersion = "master/082f74b";
+        private static readonly string f_DistVersion = "master/4136a63";
         private static readonly string f_TwitterApiKey = "60QV2qQx9cS7y1BJDbgAA|2VgD6qQKddsF5HYQ0TrRgs3tFTnCwDONBmRlTmG658";
 
         public static string InstallPrefix {
diff --git a/src/Common/Makefile.in b/src/Common/Makefile.in
index c895ce2..e22d866 100644
--- a/src/Common/Makefile.in
+++ b/src/Common/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -202,6 +202,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Common/Platform.cs b/src/Common/Platform.cs
index 75d06c3..7dbe6e6 100644
--- a/src/Common/Platform.cs
+++ b/src/Common/Platform.cs
@@ -29,6 +29,10 @@ namespace Smuxi.Common
     {
         public static string OperatingSystem {
             get {
+                if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
+                    return Environment.OSVersion.Platform.ToString();
+                }
+
                 // uname present?
                 try {
                     var pinfo = new ProcessStartInfo("uname");
@@ -111,6 +115,19 @@ namespace Smuxi.Common
         
         public static string Architecture {
             get {
+                if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
+                    // x86
+                    // AMD64
+                    var arch = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432");
+                    if (!String.IsNullOrEmpty(arch)) {
+                        return arch;
+                    }
+                    arch = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
+                    if (!String.IsNullOrEmpty(arch)) {
+                        return arch;
+                    }
+                }
+
                 // uname present?
                 try {
                     var pinfo = new ProcessStartInfo("uname");
@@ -118,21 +135,7 @@ namespace Smuxi.Common
                     pinfo.RedirectStandardOutput = true;
                     Process.Start(pinfo).WaitForExit();
                 } catch (Exception) {
-                    // no uname
-                    if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
-                        // x86
-                        // AMD64
-                        var arch = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432");
-                        if (!String.IsNullOrEmpty(arch)) {
-                            return arch;
-                        }
-                        arch = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
-                        if (!String.IsNullOrEmpty(arch)) {
-                            return arch;
-                        }
-                    }
-
-                    // fall back to pointer size
+                    // no uname, fall back to pointer size
                     return String.Format("{0}-bit", IntPtr.Size * 8);
                 }
 
diff --git a/src/Engine-Campfire/Makefile.in b/src/Engine-Campfire/Makefile.in
index f4b2477..f6b6b48 100644
--- a/src/Engine-Campfire/Makefile.in
+++ b/src/Engine-Campfire/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -218,6 +218,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Engine-Campfire/Protocols/Campfire/CampfireEventStream.cs b/src/Engine-Campfire/Protocols/Campfire/CampfireEventStream.cs
index cd6e7e5..6514d5c 100644
--- a/src/Engine-Campfire/Protocols/Campfire/CampfireEventStream.cs
+++ b/src/Engine-Campfire/Protocols/Campfire/CampfireEventStream.cs
@@ -41,9 +41,22 @@ namespace Smuxi.Engine
         }
     }
 
+    internal class ErrorReceivedEventArgs : EventArgs
+    {
+        public HttpStatusCode StatusCode { get; private set; }
+        public string StatusDescription { get; private set; }
+
+        public ErrorReceivedEventArgs(HttpStatusCode code, string description)
+        {
+            StatusCode = code;
+            StatusDescription = description;
+        }
+    }
+
     internal class CampfireEventStream : IDisposable
     {
         public EventHandler<MessageReceivedEventArgs> MessageReceived;
+        public EventHandler<ErrorReceivedEventArgs> ErrorReceived;
 
         HttpWebRequest Request { get; set; }
         GroupChatModel Chat { get; set; }
@@ -99,7 +112,20 @@ namespace Smuxi.Engine
                     ParseStream();
                 } catch (TimeoutException) {
                     // Not to worry, let's just connect again
-                } catch (WebException) {
+                } catch (WebException e) {
+                    if (e.Status == WebExceptionStatus.ProtocolError) {
+                        var resp = (HttpWebResponse) e.Response;
+                        if (resp.StatusCode == HttpStatusCode.Unauthorized ||
+                            resp.StatusCode == HttpStatusCode.Forbidden) {
+                            if (ErrorReceived != null) {
+                                ErrorReceived(this, new ErrorReceivedEventArgs(resp.StatusCode, resp.StatusDescription));
+                            }
+
+                            return;
+                        }
+                        // it's not such a bad error, sleep for a bit before trying again
+                        Thread.Sleep(TimeSpan.FromSeconds(5));
+                    }
                 }
             }
         }
diff --git a/src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs b/src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs
index b0f63c9..d2d68ba 100644
--- a/src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs
+++ b/src/Engine-Campfire/Protocols/Campfire/CampfireProtocolManager.cs
@@ -121,7 +121,9 @@ namespace Smuxi.Engine
             Session.AddChat(NetworkChat);
             Session.SyncChat(NetworkChat);
             var msg = _("Connecting to campfire... ");
-            fm.SetStatus(msg);
+            if (fm != null) {
+                fm.SetStatus(msg);
+            }
             var bld = CreateMessageBuilder().AppendEventPrefix().AppendText(msg);
             Session.AddMessageToChat(NetworkChat, bld.ToMessage());
 
@@ -162,7 +164,9 @@ namespace Smuxi.Engine
 
             Client.Credentials = new NetworkCredential(Key, "X");
             msg = _("Connected to campfire");
-            fm.SetStatus(msg);
+            if (fm != null) {
+                fm.SetStatus(msg);
+            }
             bld = CreateMessageBuilder().AppendEventPrefix().AppendText(msg);
             Session.AddMessageToChat(NetworkChat, bld.ToMessage());
 
@@ -194,19 +198,21 @@ namespace Smuxi.Engine
             // TRANSLATOR: this line is used as a label / category for a
             // list of commands below
             builder.AppendHeader(_("Campfire Commands"));
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
 
             string[] help = {
                 "connect campfire username password",
-                "list",
+                "join",
+                "topic",
                 "uploads",
+                "say"
             };
 
             foreach (string line in help) {
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(line);
-                cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cd, builder.ToMessage());
             }
         }
 
@@ -353,7 +359,16 @@ namespace Smuxi.Engine
         {
             var message = new MessageSending { body = text, type = Campfire.MessageType.TextMessage};
             var wrapper = new MessageWrapper { message = message };
-            var res = Client.Post<MessageResponse>(String.Format("/room/{0}/speak.json", chat.ID), wrapper).Message;
+            Message res;
+            try {
+                res = Client.Post<MessageResponse>(String.Format("/room/{0}/speak.json", chat.ID), wrapper).Message;
+            } catch (WebServiceException e) {
+                var bld = CreateMessageBuilder();
+                bld.AppendErrorText(_("Failed to post message: {0}"), e.Message);
+                Session.AddMessageToChat(NetworkChat, bld.ToMessage());
+                return;
+            }
+
             ShowMessage(this, new MessageReceivedEventArgs(chat, res));
             LastSentId = res.Id;
         }
@@ -469,6 +484,15 @@ namespace Smuxi.Engine
             Session.AddMessageToChat(chat, bld.ToMessage());
     }
 
+        void ShowError(object sender, ErrorReceivedEventArgs args)
+        {
+            var message = args.StatusDescription;
+            var bld = CreateMessageBuilder();
+
+            bld.AppendErrorText(_("Error reading from stream: {0}"), message);
+            Session.AddMessageToChat(NetworkChat, bld.ToMessage());
+        }
+
         public override void OpenChat(FrontendManager fm, ChatModel chat_)
         {
             Trace.Call(fm, chat_);
@@ -508,6 +532,7 @@ namespace Smuxi.Engine
                 EventStreams.Add(chat, stream);
 
             stream.MessageReceived += ShowMessage;
+            stream.ErrorReceived += ShowError;
             stream.Start();
         }
 
diff --git a/src/Engine-IRC/Makefile.in b/src/Engine-IRC/Makefile.in
index 6f98a07..645b462 100644
--- a/src/Engine-IRC/Makefile.in
+++ b/src/Engine-IRC/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -202,6 +202,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Engine-IRC/Protocols/Irc/IrcMessageBuilder.cs b/src/Engine-IRC/Protocols/Irc/IrcMessageBuilder.cs
index 3aa07dd..953749c 100644
--- a/src/Engine-IRC/Protocols/Irc/IrcMessageBuilder.cs
+++ b/src/Engine-IRC/Protocols/Irc/IrcMessageBuilder.cs
@@ -143,7 +143,7 @@ namespace Smuxi.Engine
 #if LOG4NET && MSG_DEBUG
                             Logger.Debug("AppendMessage(): colorMessage: '" + colorMessage + "'");
 #endif
-                            Match match = Regex.Match(colorMessage, (char)IrcControlCode.Color + "(?<fg>[0-9][0-9]?)(,(?<bg>[0-9][0-9]?))?");
+                            Match match = Regex.Match(colorMessage, "^" + (char)IrcControlCode.Color + "(?<fg>[0-9][0-9]?)(,(?<bg>[0-9][0-9]?))?");
                             if (match.Success) {
                                 controlChars = match.Value;
                                 int color_code;
diff --git a/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs b/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
index ee4ae1c..04c72d8 100644
--- a/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
+++ b/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
@@ -371,17 +371,23 @@ namespace Smuxi.Engine
 
                 string msg;
                 msg = String.Format(_("Connecting to {0} port {1}..."), _Host, _Port);
-                fm.SetStatus(msg);
+                if (fm != null) {
+                    fm.SetStatus(msg);
+                }
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix().AppendText(msg);
                 Session.AddMessageToChat(Chat, builder.ToMessage());
 
                 // TODO: add SSL support
                 _IrcClient.Connect(_Host, _Port);
-                fm.UpdateNetworkStatus();
+                if (fm != null) {
+                    fm.UpdateNetworkStatus();
+                }
 
                 msg = String.Format(_("Connection to {0} established"), _Host);
-                fm.SetStatus(msg);
+                if (fm != null) {
+                    fm.SetStatus(msg);
+                }
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix().AppendText(msg);
                 Session.AddMessageToChat(Chat, builder.ToMessage());
@@ -426,7 +432,9 @@ namespace Smuxi.Engine
                 }
                 _Listening = true;
             } catch (CouldNotConnectException ex) {
-                fm.SetStatus(_("Connection failed!"));
+                if (fm != null) {
+                    fm.SetStatus(_("Connection failed!"));
+                }
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(_("Connection failed! Reason: "));
@@ -441,7 +449,9 @@ namespace Smuxi.Engine
             Trace.Call(fm);
 
             MessageBuilder builder;
-            fm.SetStatus(_("Disconnecting..."));
+            if (fm != null) {
+                fm.SetStatus(_("Disconnecting..."));
+            }
             if (IsConnected) {
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
@@ -451,8 +461,10 @@ namespace Smuxi.Engine
                 // else the Listen() thread would try to connect again
                 _Listening = false;
                 _IrcClient.Disconnect();
-                fm.SetStatus(String.Format(_("Disconnected from {0}"),
-                                           _IrcClient.Address));
+                if (fm != null) {
+                    fm.SetStatus(String.Format(_("Disconnected from {0}"),
+                                               _IrcClient.Address));
+                }
 
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
@@ -460,11 +472,13 @@ namespace Smuxi.Engine
                 Session.AddMessageToChat(Chat, builder.ToMessage());
                 // TODO: set someone else as current network manager?
             } else {
-                fm.SetStatus(String.Empty);
+                if (fm != null) {
+                    fm.SetStatus(String.Empty);
+                }
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(_("Not connected"));
-                fm.AddMessageToChat(Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(fm, Chat, builder.ToMessage());
             }
             
             if (_RunThread != null && _RunThread.IsAlive) {
@@ -485,8 +499,10 @@ namespace Smuxi.Engine
 #endif
                 }
             }
-            
-            fm.UpdateNetworkStatus();
+
+            if (fm != null) {
+                fm.UpdateNetworkStatus();
+            }
         }
         
         public override void Reconnect(FrontendManager fm)
@@ -494,7 +510,9 @@ namespace Smuxi.Engine
             Trace.Call(fm);
 
             MessageBuilder builder;
-            fm.SetStatus(_("Reconnecting..."));
+            if (fm != null) {
+                fm.SetStatus(_("Reconnecting..."));
+            }
             try {
                 string msg;
                 if (_IrcClient != null) {
@@ -509,7 +527,9 @@ namespace Smuxi.Engine
                         _IrcClient.Reconnect(true);
                         msg = String.Format(_("Connection to {0} established"),
                                             _IrcClient.Address);
-                        fm.SetStatus(msg);
+                        if (fm != null) {
+                            fm.SetStatus(msg);
+                        }
 
                         builder = CreateMessageBuilder();
                         builder.AppendEventPrefix().AppendText(msg);
@@ -519,19 +539,25 @@ namespace Smuxi.Engine
                     }
                 } else {
                     msg =  _("Reconnect Error");
-                    fm.SetStatus(msg);
+                    if (fm != null) {
+                        fm.SetStatus(msg);
+                    }
 
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix().AppendText(msg);
                     Session.AddMessageToChat(Chat, builder.ToMessage());
                 }
             } catch (ConnectionException) {
-                fm.SetStatus(String.Empty);
+                if (fm != null) {
+                    fm.SetStatus(String.Empty);
+                }
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix().AppendText(_("Not connected"));
-                fm.AddMessageToChat(Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(fm, Chat, builder.ToMessage());
+            }
+            if (fm != null) {
+                fm.UpdateNetworkStatus();
             }
-            fm.UpdateNetworkStatus();
         }
 
         public override void Dispose()
@@ -767,14 +793,16 @@ namespace Smuxi.Engine
                         case "away":
                             CommandAway(command);
                             // send away on all other IRC networks too
-                            foreach (IProtocolManager nm in Session.ProtocolManagers) {
-                                if (nm == this) {
-                                    // skip us, else we send it 2 times
-                                    continue;
-                                }
-                                if (nm is IrcProtocolManager) {
-                                    IrcProtocolManager ircnm = (IrcProtocolManager)nm;
-                                    ircnm.CommandAway(command);
+                            lock (Session.ProtocolManagers) {
+                                foreach (IProtocolManager nm in Session.ProtocolManagers) {
+                                    if (nm == this) {
+                                        // skip us, else we send it 2 times
+                                        continue;
+                                    }
+                                    if (nm is IrcProtocolManager) {
+                                        IrcProtocolManager ircnm = (IrcProtocolManager)nm;
+                                        ircnm.CommandAway(command);
+                                    }
                                 }
                             }
                             handled = true;
@@ -913,10 +941,6 @@ namespace Smuxi.Engine
                             }
                             handled = true;
                             break;
-                        default:
-                            CommandFallback(command);
-                            handled = true;
-                            break;
                     }
                 } else {
                     // normal text
@@ -992,7 +1016,7 @@ namespace Smuxi.Engine
             // TRANSLATOR: this line is used as label / category for a
             // list of commands below
             builder.AppendHeader(_("IrcProtocolManager Commands"));
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
 
             string[] help = {
             "connect irc server [port|+port] [password] [nicknames]",
@@ -1046,7 +1070,7 @@ namespace Smuxi.Engine
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(line);
-                cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cd, builder.ToMessage());
             }
         }
         
@@ -1075,7 +1099,7 @@ namespace Smuxi.Engine
                     builder.AppendEventPrefix();
                     builder.AppendText(_("Invalid port: {0}"),
                                        cd.DataArray[3]);
-                    fm.AddMessageToChat(Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(fm, Chat, builder.ToMessage());
                     return;
                 }
             } else {
@@ -1134,7 +1158,12 @@ namespace Smuxi.Engine
                 }
             }
             builder.AppendMessage(message);
-            Session.AddMessageToChat(chat, builder.ToMessage(), true);
+            var msg = builder.ToMessage();
+            Session.AddMessageToChat(chat, msg, true);
+
+            OnMessageSent(
+                new MessageEventArgs(chat, msg, null, chat.ID)
+            );
         }
         
         public void CommandJoin(CommandModel cd)
@@ -1142,7 +1171,7 @@ namespace Smuxi.Engine
             Trace.Call(cd);
 
             MessageBuilder builder;
-            if (cd.DataArray.Length < 2) {
+            if (cd.DataArray.Length < 2 || cd.DataArray[1].Length == 0) {
                 _NotEnoughParameters(cd);
                 return;
             }
@@ -1163,7 +1192,8 @@ namespace Smuxi.Engine
                 builder.AppendEventPrefix();
                 builder.AppendText(_("Queuing joins: {0}"),
                                    String.Join(" ", channels));
-                cd.FrontendManager.AddMessageToChat(Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cd.FrontendManager, Chat,
+                                             builder.ToMessage());
             }
 
             int i = 0;
@@ -1184,7 +1214,7 @@ namespace Smuxi.Engine
                           " Type /window {0} to switch to it."),
                         channel
                     );
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                     continue;
                 }
 
@@ -1217,7 +1247,8 @@ namespace Smuxi.Engine
                                 _("Active joins: {0} - Queued joins: {1}"),
                                 activeChans, queuedChans
                             );
-                            cd.FrontendManager.AddMessageToChat(Chat, builder.ToMessage());
+                            Session.AddMessageToFrontend(cd.FrontendManager, Chat,
+                                                         builder.ToMessage());
 
 #if LOG4NET
                             _Logger.Debug("CommandJoin(): waiting to join: " + chan);
@@ -1259,7 +1290,8 @@ namespace Smuxi.Engine
                             }
                             builder = CreateMessageBuilder();
                             builder.AppendEventPrefix().AppendText(msg);
-                            cd.FrontendManager.AddMessageToChat(Chat, builder.ToMessage());
+                            Session.AddMessageToFrontend(cd.FrontendManager, Chat,
+                                                         builder.ToMessage());
                         } else {
                             lock (_QueuedChannelJoinList) {
                                 _QueuedChannelJoinList.Remove(chan);
@@ -1267,7 +1299,8 @@ namespace Smuxi.Engine
                             builder = CreateMessageBuilder();
                             builder.AppendEventPrefix();
                             builder.AppendText(_("Joining: {0}"), chan);
-                            cd.FrontendManager.AddMessageToChat(Chat, builder.ToMessage());
+                            Session.AddMessageToFrontend(cd.FrontendManager, Chat,
+                                                         builder.ToMessage());
                         }
 #if LOG4NET
                         _Logger.Debug("CommandJoin(): joining: " + chan);
@@ -1437,7 +1470,7 @@ namespace Smuxi.Engine
                     AppendMessage(message).
                     ToMessage();
                 Session.AddMessageToChat(_NetworkChat, msg, true);
-                if (cmd.Chat != _NetworkChat) {
+                if (cmd.Chat != _NetworkChat && cmd.FrontendManager != null) {
                     cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
                 }
                 _IrcClient.SendMessage(SendType.Message, nickname, message);
@@ -1746,9 +1779,7 @@ namespace Smuxi.Engine
         public void CommandTopic(CommandModel cd)
         {
             MessageBuilder builder;
-            FrontendManager fm = cd.FrontendManager;
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length >= 2) {
                 _IrcClient.RfcTopic(channel, cd.Parameter);
             } else {
@@ -1764,7 +1795,7 @@ namespace Smuxi.Engine
                     } else {
                         builder.AppendText(_("No topic set for {0}"), channel);
                     }
-                    fm.AddMessageToChat(chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
             }
         }
@@ -1912,8 +1943,7 @@ namespace Smuxi.Engine
         public void CommandBan(CommandModel cd)
         {
             MessageBuilder builder;
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length == 2) {
                 // TODO: use a smart mask by default
                 _IrcClient.Ban(channel, cd.Parameter);
@@ -1934,21 +1964,20 @@ namespace Smuxi.Engine
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendText(msg);
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
                 if (infos.Count == 0) {
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendText(_("No bans in channel"), channel);
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
             }
         }
 
         public void CommandUnban(CommandModel cd)
         {
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length == 2) {
                 _IrcClient.Unban(channel, cd.Parameter);
             } else if (cd.DataArray.Length > 2) {
@@ -1962,8 +1991,7 @@ namespace Smuxi.Engine
         public void CommandBanException(CommandModel cd)
         {
             MessageBuilder builder;
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length == 2) {
                 // TODO: use a smart mask by default
                 _IrcClient.BanException(channel, cd.Parameter);
@@ -1984,21 +2012,20 @@ namespace Smuxi.Engine
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendText(msg);
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
                 if (infos.Count == 0) {
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendText(_("No ban exceptions in channel"), channel);
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
             }
         }
 
         public void CommandUnBanException(CommandModel cd)
         {
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length == 2) {
                 _IrcClient.UnBanException(channel, cd.Parameter);
             } else if (cd.DataArray.Length > 2) {
@@ -2012,8 +2039,7 @@ namespace Smuxi.Engine
         public void CommandInviteException(CommandModel cd)
         {
             MessageBuilder builder;
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length == 2) {
                 // TODO: use a smart mask by default
                 _IrcClient.InviteException(channel, cd.Parameter);
@@ -2034,21 +2060,20 @@ namespace Smuxi.Engine
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendText(msg);
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
                 if (infos.Count == 0) {
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendText(_("No invite exceptions in channel"), channel);
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 }
             }
         }
 
         public void CommandUnInviteException(CommandModel cd)
         {
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length == 2) {
                 _IrcClient.UnInviteException(channel, cd.Parameter);
             } else if (cd.DataArray.Length > 2) {
@@ -2061,8 +2086,7 @@ namespace Smuxi.Engine
 
         public void CommandKick(CommandModel cd)
         {
-            ChatModel chat = cd.Chat;
-            string channel = chat.ID;
+            string channel = cd.Chat.ID;
             if (cd.DataArray.Length >= 2) {
                 string[] candidates = cd.DataArray[1].Split(new char[] {','});
                 if (cd.DataArray.Length >= 3) {
@@ -2157,7 +2181,7 @@ namespace Smuxi.Engine
                     builder.AppendEventPrefix();
                     builder.AppendText(_("Your user mode is {0}"),
                                        String.Format("[{0}]", _IrcClient.Usermode));
-                    cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                 } else {
                     _IrcClient.RfcMode(target);
                 }
@@ -2166,26 +2190,25 @@ namespace Smuxi.Engine
 
         public void CommandInvite(CommandModel cd)
         {
-            ChatModel chat = cd.Chat;
             string channel;
             if (cd.DataArray.Length >= 3) {
                 channel = cd.DataArray[2];
             } else {
-                channel = chat.ID;
+                channel = cd.Chat.ID;
             }
             if (cd.DataArray.Length < 2) {
                 _NotEnoughParameters(cd);
                 return;
             }
             var invitee = cd.DataArray[1];
-            var groupChat = chat as GroupChatModel;
+            var groupChat = cd.Chat as GroupChatModel;
             if (groupChat != null && groupChat.GetPerson(invitee) != null) {
                 var msg = CreateMessageBuilder().
                     AppendEventPrefix().
                     AppendText(_("{0} is already on {1}"),
                                invitee, channel).
                     ToMessage();
-                cd.FrontendManager.AddMessageToChat(chat, msg);
+                Session.AddMessageToFrontend(cd, msg);
             } else {
                 _IrcClient.RfcInvite(invitee, channel);
                 var msg = CreateMessageBuilder().
@@ -2193,7 +2216,7 @@ namespace Smuxi.Engine
                     AppendText(_("Inviting {0} to {1}"),
                                invitee, channel).
                     ToMessage();
-                cd.FrontendManager.AddMessageToChat(chat, msg);
+                Session.AddMessageToFrontend(cd, msg);
             }
         }
         
@@ -2205,7 +2228,6 @@ namespace Smuxi.Engine
             13:10 -!- Irssi: #smuxi: Total of 6 nicks [0 ops, 0 halfops, 0 voices, 6 normal]
             */
             
-            FrontendManager fm = cd.FrontendManager;
             ChatModel chat = cd.Chat;
             if (!(chat is GroupChatModel)) {
                 return;
@@ -2215,7 +2237,7 @@ namespace Smuxi.Engine
             var builder = CreateMessageBuilder();
             builder.AppendEventPrefix();
             builder.AppendText("[{0} {1}]", _("Users"), groupChat.Name);
-            fm.AddMessageToChat(chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
             
             builder = CreateMessageBuilder();
             int opCount = 0;
@@ -2259,7 +2281,7 @@ namespace Smuxi.Engine
                 builder.AppendSpace();
             }
             builder.AppendText("]");
-            fm.AddMessageToChat(chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
 
             builder = CreateMessageBuilder();
             builder.AppendEventPrefix();
@@ -2272,7 +2294,7 @@ namespace Smuxi.Engine
                     normalCount
                 )
             );
-            fm.AddMessageToChat(chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
         }
 
         public void CommandRaw(CommandModel cd)
@@ -2413,7 +2435,7 @@ namespace Smuxi.Engine
                 AppendEventPrefix().
                 AppendText(_("Not enough parameters for {0} command"), cd.Command).
                 ToMessage();
-            cd.FrontendManager.AddMessageToChat(cd.Chat, msg);
+            Session.AddMessageToFrontend(cd, msg);
         }
         
         private void _NotConnected(CommandModel cd)
@@ -2422,7 +2444,7 @@ namespace Smuxi.Engine
                 AppendEventPrefix().
                 AppendText(_("Not connected to server")).
                 ToMessage();
-            cd.FrontendManager.AddMessageToChat(cd.Chat, msg);
+            Session.AddMessageToFrontend(cd, msg);
         }
 
         private void ApplyConfig(UserConfig config, ServerModel server)
@@ -2908,11 +2930,17 @@ namespace Smuxi.Engine
             UpdateGroupPerson(chat, e.Data);
 
             var builder = CreateMessageBuilder();
-            builder.AppendMessage(GetPerson(chat, e.Data.Nick), e.Data.Message);
+            builder.AppendMessage(GetPerson(chat, e.Data.Nick ?? e.Data.From),
+                                  e.Data.Message);
             builder.MarkHighlights();
 
             var msg = builder.ToMessage();
             Session.AddMessageToChat(chat, msg);
+
+            OnMessageReceived(
+                new MessageEventArgs(chat, msg, e.Data.Nick ?? e.Data.From,
+                                     e.Data.Channel)
+            );
         }
         
         private void _OnChannelAction(object sender, ActionEventArgs e)
@@ -2922,13 +2950,18 @@ namespace Smuxi.Engine
 
             var builder = CreateMessageBuilder();
             builder.AppendActionPrefix();
-            builder.AppendIdendityName(GetPerson(chat, e.Data.Nick));
+            builder.AppendIdendityName(GetPerson(chat, e.Data.Nick ?? e.Data.From));
             builder.AppendText(" ");
             builder.AppendMessage(e.ActionMessage);
             builder.MarkHighlights();
 
             var msg = builder.ToMessage();
             Session.AddMessageToChat(chat, msg);
+
+            OnMessageReceived(
+                new MessageEventArgs(chat, msg, e.Data.Nick ?? e.Data.From,
+                                     e.Data.Channel)
+            );
         }
         
         private void _OnChannelNotice(object sender, IrcEventArgs e)
@@ -2943,6 +2976,11 @@ namespace Smuxi.Engine
 
             var msg = builder.ToMessage();
             Session.AddMessageToChat(chat, msg);
+
+            OnMessageReceived(
+                new MessageEventArgs(chat, msg, e.Data.Nick ?? e.Data.From,
+                                     e.Data.Channel)
+            );
         }
         
         private void _OnQueryMessage(object sender, IrcEventArgs e)
@@ -2982,6 +3020,10 @@ namespace Smuxi.Engine
             }
 
             Session.AddMessageToChat(chat, msg);
+
+            OnMessageReceived(
+                new MessageEventArgs(chat, msg, e.Data.Nick ?? e.Data.From, null)
+            );
         }
         
         private void _OnQueryAction(object sender, ActionEventArgs e)
@@ -3023,6 +3065,10 @@ namespace Smuxi.Engine
             }
 
             Session.AddMessageToChat(chat, msg);
+
+            OnMessageReceived(
+                new MessageEventArgs(chat, msg, e.Data.Nick ?? e.Data.From, null)
+            );
         }
         
         private void _OnQueryNotice(object sender, IrcEventArgs e)
@@ -3073,6 +3119,10 @@ namespace Smuxi.Engine
             foreach (var targetChat in targetChats) {
                 Session.AddMessageToChat(targetChat, msg);
             }
+
+            OnMessageReceived(
+                new MessageEventArgs(Chat, msg, e.Data.Nick ?? e.Data.From, null)
+            );
         }
 
         private void _OnJoin(object sender, JoinEventArgs e)
diff --git a/src/Engine-JabbR/JabbrProtocolManager.cs b/src/Engine-JabbR/JabbrProtocolManager.cs
index 02321a5..d6cf983 100644
--- a/src/Engine-JabbR/JabbrProtocolManager.cs
+++ b/src/Engine-JabbR/JabbrProtocolManager.cs
@@ -73,18 +73,49 @@ namespace Smuxi.Engine
             Trace.Call(cmd);
 
             if (cmd.IsCommand) {
+                var handled = false;
                 switch (cmd.Command) {
+                    case "help":
+                        CommandHelp(cmd);
+                        handled = true;
+                        break;
                     case "j":
                     case "join":
                         CommandJoin(cmd);
+                        handled = true;
                         break;
                 }
+                return handled;
             } else {
                 CommandMessage(cmd);
             }
             return true;
         }
 
+        public void CommandHelp(CommandModel cmd)
+        {
+            Trace.Call(cmd);
+
+            // TRANSLATOR: this line is used as a label / category for a
+            // list of commands below
+            var builder = CreateMessageBuilder().
+                AppendEventPrefix().
+                AppendHeader(_("JabbR Commands"));
+            cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+
+            string[] help = {
+                "connect jabbr username password",
+                "join"
+            };
+
+            foreach (string line in help) {
+                builder = CreateMessageBuilder();
+                builder.AppendEventPrefix();
+                builder.AppendText(line);
+                cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+            }
+        }
+
         public void CommandJoin(CommandModel cmd)
         {
             Trace.Call(cmd);
@@ -105,7 +136,7 @@ namespace Smuxi.Engine
                     AppendErrorText(_("Joining room failed. Reason: {0}"),
                                     ex.Message).
                     ToMessage();
-                cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+                Session.AddMessageToFrontend(cmd, msg);
             }
         }
 
@@ -131,7 +162,7 @@ namespace Smuxi.Engine
                     AppendErrorText(_("Sending message failed. Reason: {0}"),
                                     ex.Message).
                     ToMessage();
-                cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+                Session.AddMessageToFrontend(cmd, msg);
             }
         }
 
@@ -140,6 +171,7 @@ namespace Smuxi.Engine
             Trace.Call(fm, server);
 
             Server = server;
+            Username = server.Username;
             var chatName = String.Format("{0} {1}", Protocol, NetworkID);
             ProtocolChat = new ProtocolChatModel(NetworkID, chatName, this);
             ProtocolChat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
@@ -168,11 +200,14 @@ namespace Smuxi.Engine
                 // for some reason and then fallbacks to LongPollingTransport
                 // this takes 10 seconds though, so let's go LP directly
                 Func<IClientTransport> transport = null;
-                if (Type.GetType("Mono.Runtime") != null) {
+                if (Type.GetType("Mono.Runtime") == null) {
+                    transport = () => new AutoTransport(new DefaultHttpClient());
+                } else {
                     transport = () => new LongPollingTransport();
                 }
                 var authProvider = new DefaultAuthenticationProvider(url);
                 Client = new JabbRClient(url, authProvider, transport);
+                Client.AutoReconnect = true;
                 Client.MessageReceived += OnMessageReceived;
                 Client.MeMessageReceived += OnMeMessageReceived;
                 Client.UserLeft += OnUserLeft;
@@ -180,26 +215,12 @@ namespace Smuxi.Engine
                 Client.JoinedRoom += OnJoinedRoom;
                 Client.PrivateMessage += OnPrivateMessage;
 
-                var msg = CreateMessageBuilder().
-                    AppendEventPrefix().
-                    AppendText(_("Connecting to {0}..."), url).
-                    ToMessage();
-                Session.AddMessageToChat(ProtocolChat, msg);
-
-                Username = server.Username;
-                var res = Client.Connect(server.Username, server.Password);
-                res.Wait();
-                // HACK: this event can only be subscribed if we have made an
-                // actual connection o_O
-                Client.Disconnected += OnDisconnected;
-                IsConnected = true;
-                OnConnected(EventArgs.Empty);
-                OnLoggedOn(res.Result.Rooms);
-
                 Me = CreatePerson(Username);
                 Me.IdentityNameColored.ForegroundColor = new TextColor(0, 0, 255);
                 Me.IdentityNameColored.BackgroundColor = TextColor.None;
                 Me.IdentityNameColored.Bold = true;
+
+                Connect();
             } catch (Exception ex) {
 #if LOG4NET
                 Logger.Error(ex);
@@ -213,6 +234,26 @@ namespace Smuxi.Engine
             }
         }
 
+        void Connect()
+        {
+            Trace.Call();
+
+            var msg = CreateMessageBuilder().
+                AppendEventPrefix().
+                    AppendText(_("Connecting to {0}..."), Client.SourceUrl).
+                    ToMessage();
+            Session.AddMessageToChat(ProtocolChat, msg);
+
+            var res = Client.Connect(Server.Username, Server.Password);
+            res.Wait();
+            // HACK: this event can only be subscribed if we have made an
+            // actual connection o_O
+            Client.Disconnected += OnDisconnected;
+            IsConnected = true;
+            OnConnected(EventArgs.Empty);
+            OnLoggedOn(res.Result.Rooms);
+        }
+
         void OnPrivateMessage(string fromUserName, string toUserName, string message)
         {
             Trace.Call(fromUserName, toUserName, message);
@@ -248,6 +289,17 @@ namespace Smuxi.Engine
         {
             Trace.Call();
 
+            foreach (var chat in Chats) {
+                // don't disable the protocol chat, else the user loses all
+                // control for the protocol manager! e.g. after a manual
+                // reconnect or server-side disconnect
+                if (chat.ChatType == ChatType.Protocol) {
+                    continue;
+                }
+
+                Session.DisableChat(chat);
+            }
+
             IsConnected = false;
             OnDisconnected(EventArgs.Empty);
         }
@@ -283,7 +335,19 @@ namespace Smuxi.Engine
         {
             Trace.Call(fm);
 
-            throw new NotImplementedException();
+            var msg = CreateMessageBuilder().
+                AppendEventPrefix().
+                    AppendText(_("Reconnecting to {0}..."), Server.Hostname).
+                    ToMessage();
+            Session.AddMessageToChat(Chat, msg);
+            try {
+                Client.Disconnect();
+                Connect();
+            } catch (Exception ex) {
+#if LOG4NET
+                Logger.Error("Reconnect(): Exception during reconnect", ex);
+#endif
+            }
         }
 
         public override void Disconnect(FrontendManager fm)
@@ -376,24 +440,32 @@ namespace Smuxi.Engine
             Trace.Call(message, room);
 
             var chat = GetChat(room, ChatType.Group) ?? ProtocolChat;
+            AddMessage(chat, message);
+        }
+
+        void AddMessage(ChatModel chat, Message msg)
+        {
+            if (chat == null) {
+                throw new ArgumentNullException("chat");
+            }
+            if (msg == null) {
+                throw new ArgumentNullException("msg");
+            }
 
-            string content = message.Content;
-            string name = message.User.Name;
+            string content = msg.Content;
+            string name = msg.User.Name;
 
             var builder = CreateMessageBuilder<JabbrMessageBuilder>();
-            ContactModel sender = null;
-            if (name == Username) {
-                sender = Me;
-            } else {
-                sender = CreatePerson(name);
+            if (msg.When != default(DateTimeOffset)) {
+                builder.TimeStamp = msg.When.UtcDateTime;
             }
+            var sender = name == Username ? Me : CreatePerson(name);
             builder.AppendSenderPrefix(sender);
             builder.AppendMessage(content);
             if (sender != Me) {
                 builder.MarkHighlights();
             }
-            var msg = builder.ToMessage();
-            Session.AddMessageToChat(chat, msg);
+            Session.AddMessageToChat(chat, builder.ToMessage());
         }
 
         void OnMeMessageReceived(string userName, string content, string roomName)
@@ -460,8 +532,16 @@ namespace Smuxi.Engine
 
             try {
                 foreach (var room in rooms) {
-                    var groupChat = new GroupChatModel(room.Name, room.Name, this);
-                    groupChat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
+                    var groupChat = (GroupChatModel) GetChat(room.Name, ChatType.Group);
+                    bool newChat;
+                    if (groupChat == null) {
+                        groupChat = new GroupChatModel(room.Name, room.Name, this);
+                        groupChat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
+                        newChat = true;
+                    } else {
+                        groupChat.UnsafePersons.Clear();
+                        newChat = false;
+                    }
 
                     var task = Client.GetRoomInfo(room.Name);
                     task.Wait();
@@ -478,7 +558,14 @@ namespace Smuxi.Engine
                     if (!groupChat.UnsafePersons.ContainsKey(Username)) {
                         groupChat.UnsafePersons.Add(Username, Me);
                     }
-                    Session.AddChat(groupChat);
+                    foreach (var msg in roomInfo.RecentMessages) {
+                        AddMessage(groupChat, msg);
+                    }
+                    if (newChat) {
+                        Session.AddChat(groupChat);
+                    } else {
+                        Session.EnableChat(groupChat);
+                    }
                     Session.SyncChat(groupChat);
                 }
             } catch (Exception ex) {
@@ -487,7 +574,7 @@ namespace Smuxi.Engine
 #endif
                 var msg = CreateMessageBuilder().
                     AppendEventPrefix().
-                    AppendErrorText(_("Retrieving chat information failed " +
+                    AppendErrorText(_("Retrieving chat information failed. " +
                                       "Reason: {0}"),
                                     ex.Message).
                     ToMessage();
diff --git a/src/Engine-JabbR/Makefile.in b/src/Engine-JabbR/Makefile.in
index 10257f6..48b64c5 100644
--- a/src/Engine-JabbR/Makefile.in
+++ b/src/Engine-JabbR/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -218,6 +218,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Engine-Twitter/Makefile.am b/src/Engine-Twitter/Makefile.am
index 51d784e..9398d39 100644
--- a/src/Engine-Twitter/Makefile.am
+++ b/src/Engine-Twitter/Makefile.am
@@ -11,7 +11,8 @@ SOURCES =	$(top_srcdir)/src/AssemblyVersion.cs \
 
 REFERENCES = 		$(LOG4NET_LIBS) \
 			$(SMARTIRC4NET_LIBS) \
-			System.Web
+			System.Web \
+			System.Core
 
 DLL_REFERENCES =	$(TARGET_DIR)/Twitterizer2.dll \
 			$(TARGET_DIR)/smuxi-common.dll \
diff --git a/src/Engine-Twitter/Makefile.in b/src/Engine-Twitter/Makefile.in
index b76a038..3815277 100644
--- a/src/Engine-Twitter/Makefile.in
+++ b/src/Engine-Twitter/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -218,6 +218,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -398,7 +399,8 @@ SOURCES = $(top_srcdir)/src/AssemblyVersion.cs \
 
 REFERENCES = $(LOG4NET_LIBS) \
 			$(SMARTIRC4NET_LIBS) \
-			System.Web
+			System.Web \
+			System.Core
 
 DLL_REFERENCES = $(TARGET_DIR)/Twitterizer2.dll \
 			$(TARGET_DIR)/smuxi-common.dll \
diff --git a/src/Engine-Twitter/Protocols/Twitter/TwitterMessageBuilder.cs b/src/Engine-Twitter/Protocols/Twitter/TwitterMessageBuilder.cs
index f15ed97..c2e8dc7 100644
--- a/src/Engine-Twitter/Protocols/Twitter/TwitterMessageBuilder.cs
+++ b/src/Engine-Twitter/Protocols/Twitter/TwitterMessageBuilder.cs
@@ -1,6 +1,6 @@
 // Smuxi - Smart MUltipleXed Irc
 // 
-// Copyright (c) 2010 Mirco Bauer <meebey at meebey.net>
+// Copyright (c) 2010, 2013 Mirco Bauer <meebey at meebey.net>
 // 
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
 // 
@@ -21,28 +21,69 @@
 using System;
 using System.Web;
 using System.Text;
+using Twitterizer;
 
 namespace Smuxi.Engine
 {
     public class TwitterMessageBuilder : MessageBuilder
     {
-        public override MessageBuilder AppendMessage(string msg)
+        public TwitterMessageBuilder Append(TwitterStatus status,
+                                            ContactModel sender,
+                                            bool isHighlight)
+        {
+            if (status == null) {
+                throw new ArgumentNullException("status");
+            }
+            if (sender == null) {
+                throw new ArgumentNullException("sender");
+            }
+
+            // MessageModel serializer expects UTC values
+            TimeStamp = status.CreatedDate.ToUniversalTime();
+            AppendSenderPrefix(sender, isHighlight);
+
+            // LAME: Twitter lies in the truncated field and says it's not
+            // truncated while it is, thus always use retweet_status if
+            // available
+            if (status.RetweetedStatus != null) {
+                var text = String.Format(
+                    "RT @{0}: {1}",
+                    status.RetweetedStatus.User.ScreenName,
+                    status.RetweetedStatus.Text
+                );
+                AppendMessage(text);
+            } else {
+                AppendMessage(status.Text);
+            }
+            return this;
+        }
+
+        public TwitterMessageBuilder Append(TwitterStatus status, ContactModel sender)
         {
-            if (msg.Contains("\n")) {
-                var normalized = new StringBuilder(msg.Length);
-                msg = msg.Replace("\r\n", "\n");
-                foreach (var msgPart in msg.Split('\n')) {
-                    var trimmed = msgPart.TrimEnd(' ');
-                    if (trimmed.Length == 0) {
-                        // skip empty lines
-                        continue;
-                    }
-                    normalized.AppendFormat("{0} ", trimmed);
-                }
-                // remove trailing space
-                normalized.Length--;
-                msg = normalized.ToString();
+            return Append(status, sender, false);
+        }
+
+        public TwitterMessageBuilder Append(TwitterDirectMessage status,
+                                            ContactModel sender,
+                                            bool isHighlight)
+        {
+            if (status == null) {
+                throw new ArgumentNullException("status");
             }
+            if (sender == null) {
+                throw new ArgumentNullException("sender");
+            }
+
+            // MessageModel serializer expects UTC values
+            TimeStamp = status.CreatedDate.ToUniversalTime();
+            AppendSenderPrefix(sender, isHighlight);
+            AppendMessage(status.Text);
+            return this;
+        }
+
+        public override MessageBuilder AppendMessage(string msg)
+        {
+            msg = NormalizeNewlines(msg);
             return base.AppendMessage(HttpUtility.HtmlDecode(msg));
         }
     }
diff --git a/src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs b/src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs
index 56478a8..893725d 100644
--- a/src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs
+++ b/src/Engine-Twitter/Protocols/Twitter/TwitterProtocolManager.cs
@@ -1,6 +1,6 @@
 // Smuxi - Smart MUltipleXed Irc
 // 
-// Copyright (c) 2009-2011 Mirco Bauer <meebey at meebey.net>
+// Copyright (c) 2009-2013 Mirco Bauer <meebey at meebey.net>
 // 
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
 // 
@@ -22,6 +22,7 @@ using System;
 using System.Net;
 using System.Net.Security;
 using System.Web;
+using System.Linq;
 using System.Security.Cryptography.X509Certificates;
 using System.Threading;
 using System.Collections.Generic;
@@ -81,6 +82,9 @@ namespace Smuxi.Engine
         int                     ErrorResponseCount { get; set; }
         const int               MaxErrorResponseCount = 3;
 
+        TwitterStatus[]         StatusIndex { get; set; }
+        int                     StatusIndexOffset { get; set; }
+
         public override string NetworkID {
             get {
                 if (f_TwitterUser == null) {
@@ -147,15 +151,14 @@ namespace Smuxi.Engine
             );
             f_DirectMessagesChat.ApplyConfig(Session.UserConfig);
             f_GroupChats.Add(f_DirectMessagesChat);
+
+            StatusIndex = new TwitterStatus[99];
         }
 
         public override void Connect(FrontendManager fm, ServerModel server)
         {
             Trace.Call(fm, server);
 
-            if (fm == null) {
-                throw new ArgumentNullException("fm");
-            }
             if (server == null) {
                 throw new ArgumentNullException("server");
             }
@@ -206,10 +209,13 @@ namespace Smuxi.Engine
                 }
             }
 
-            string msg;
-            msg = String.Format(_("Connecting to Twitter..."));
-            fm.SetStatus(msg);
-            Session.AddTextToChat(f_ProtocolChat, "-!- " + msg);
+            string msgStr = _("Connecting to Twitter...");
+            if (fm != null) {
+                fm.SetStatus(msgStr);
+            }
+            var msg = CreateMessageBuilder().
+                AppendEventPrefix().AppendText(msgStr).ToMessage();
+            Session.AddMessageToChat(Chat, msg);
             try {
                 var key = GetApiKey();
                 f_OAuthTokens = new OAuthTokens();
@@ -282,10 +288,16 @@ namespace Smuxi.Engine
 #if LOG4NET
                 f_Logger.Error("Connect(): Exception", ex);
 #endif
-                fm.SetStatus(_("Connection failed!"));
-                Session.AddTextToChat(f_ProtocolChat,
-                    "-!- " + _("Connection failed! Reason: ") + ex.Message
-                );
+                if (fm != null) {
+                    fm.SetStatus(_("Connection failed!"));
+                }
+                msg = CreateMessageBuilder().
+                    AppendEventPrefix().
+                    AppendErrorText(
+                        _("Connection failed! Reason: {0}"),
+                        ex.Message).
+                    ToMessage();
+                Session.AddMessageToChat(Chat, msg);
                 return;
             }
 
@@ -298,34 +310,55 @@ namespace Smuxi.Engine
                     }
                     
                     var message = _("Fetching user details from Twitter, please wait...");
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + message);
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().AppendText(message).ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
 
                     UpdateUser();
 
                     message = _("Finished fetching user details.");
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + message);
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().AppendText(message).ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
 
                     f_IsConnected = true;
-                    fm.UpdateNetworkStatus();
-                    msg =_("Successfully connected to Twitter.");
-                    fm.SetStatus(msg);
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + msg);
+                    message =_("Successfully connected to Twitter.");
+                    if (fm != null) {
+                        fm.UpdateNetworkStatus();
+                        fm.SetStatus(message);
+                    }
+
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().AppendText(message).ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
                     f_Listening = true;
 
                     f_FriendsTimelineChat.PersonCount = 
                     f_RepliesChat.PersonCount = 
                     f_DirectMessagesChat.PersonCount = (int) f_TwitterUser.NumberOfFriends;
+
+                    OnConnected(EventArgs.Empty);
+
                 } catch (Exception ex) {
                     var message = _("Failed to fetch user details from Twitter. Reason: ");
 #if LOG4NET
                     f_Logger.Error("Connect(): " + message, ex);
 #endif
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + message + ex.Message);
-
-                    fm.SetStatus(_("Connection failed!"));
-                    Session.AddTextToChat(f_ProtocolChat,
-                        "-!- " + _("Connection failed! Reason: ") + ex.Message
-                    );
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendErrorText(message + ex.Message).
+                        ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
+
+                    if (fm != null) {
+                        fm.SetStatus(_("Connection failed!"));
+                    }
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendErrorText(_("Connection failed! Reason: {0}"),
+                                        ex.Message).
+                        ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
                 }
             });
             ThreadPool.QueueUserWorkItem(delegate {
@@ -337,19 +370,31 @@ namespace Smuxi.Engine
                         Thread.Sleep(1000);
                     }
 
-                    var message = _("Fetching friends from Twitter, please wait...");
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + message);
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendText(
+                            _("Fetching friends from Twitter, please wait...")
+                        ).
+                        ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
 
                     UpdateFriends();
 
-                    message = _("Finished fetching friends.");
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + message);
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendText(_("Finished fetching friends.")).
+                        ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
                 } catch (Exception ex) {
                     var message = _("Failed to fetch friends from Twitter. Reason: ");
 #if LOG4NET
                     f_Logger.Error("Connect(): " + message, ex);
 #endif
-                    Session.AddTextToChat(f_ProtocolChat, "-!- " + message + ex.Message);
+                    msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendErrorText(message + ex.Message).
+                        ToMessage();
+                    Session.AddMessageToChat(Chat, msg);
                 }
             });
 
@@ -530,10 +575,17 @@ namespace Smuxi.Engine
         {
             Trace.Call(fm, chat);
 
-            if (chat.ChatType == ChatType.Group) {
-               TwitterChatType twitterChatType = (TwitterChatType)
-                    Enum.Parse(typeof(TwitterChatType), chat.ID);
-               switch (twitterChatType) {
+            TwitterChatType? chatType = null;
+            try {
+                chatType = (TwitterChatType) Enum.Parse(
+                    typeof(TwitterChatType),
+                    chat.ID
+                );
+            } catch (ArgumentException) {
+            }
+            if (chat.ChatType == ChatType.Group &&
+                chatType.HasValue) {
+               switch (chatType.Value) {
                     case TwitterChatType.FriendsTimeline:
                         if (f_UpdateFriendsTimelineThread != null &&
                             f_UpdateFriendsTimelineThread.IsAlive) {
@@ -579,6 +631,32 @@ namespace Smuxi.Engine
                             CommandMessage(command);
                             handled = true;
                             break;
+                        case "timeline":
+                            CommandTimeline(command);
+                            handled = true;
+                            break;
+                        case "follow":
+                            CommandFollow(command);
+                            handled = true;
+                            break;
+                        case "unfollow":
+                            CommandUnfollow(command);
+                            handled = true;
+                            break;
+                        case "search":
+                        case "join":
+                            CommandSearch(command);
+                            handled = true;
+                            break;
+                        case "rt":
+                        case "retweet":
+                            CommandRetweet(command);
+                            handled = true;
+                            break;
+                        case "reply":
+                            CommandReply(command);
+                            handled = true;
+                            break;
                     }
                 }
                 switch (command.Command) {
@@ -623,18 +701,23 @@ namespace Smuxi.Engine
             // TRANSLATOR: this line is used as a label / category for a
             // list of commands below
             builder.AppendHeader(_("Twitter Commands"));
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
 
             string[] help = {
                 "connect twitter username",
                 "pin pin-number",
+                "follow screen-name|user-id",
+                "unfollow screen-name|user-id",
+                "search keyword",
+                "retweet/rt index-number|tweet-id",
+                "reply index-number|tweet-id message",
             };
 
             foreach (string line in help) {
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(line);
-                cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cd, builder.ToMessage());
             }
         }
 
@@ -766,30 +849,35 @@ namespace Smuxi.Engine
 
         public void CommandSay(CommandModel cmd)
         {
-            FrontendManager fm = cmd.FrontendManager;
             if (cmd.Chat.ChatType == ChatType.Group) {
                 TwitterChatType twitterChatType = (TwitterChatType)
                     Enum.Parse(typeof(TwitterChatType), cmd.Chat.ID);
                 switch (twitterChatType) {
                     case TwitterChatType.FriendsTimeline:
-                    case TwitterChatType.Replies:
+                    case TwitterChatType.Replies: {
                         try {
                             PostUpdate(cmd.Data);
                         } catch (Exception ex) {
-                            fm.AddTextToChat(cmd.Chat, "-!- " +
-                                String.Format(_("Could not update status - Reason: {0}"),
-                                              ex.Message)
-                            );
+                            var msg = CreateMessageBuilder().
+                                AppendEventPrefix().
+                                AppendErrorText(
+                                    _("Could not update status - Reason: {0}"),
+                                    ex.Message).
+                                ToMessage();
+                            Session.AddMessageToFrontend(cmd, msg);
                         }
                         break;
-                    case TwitterChatType.DirectMessages:
-                        fm.AddTextToChat(
-                            cmd.Chat,
-                            "-!- " +
-                            _("Cannot send message - no target specified. "+
-                              "Use: /msg $nick message")
-                        );
+                    }
+                    case TwitterChatType.DirectMessages: {
+                        var msg = CreateMessageBuilder().
+                            AppendEventPrefix().
+                            AppendErrorText(
+                                _("Cannot send message - no target specified. " +
+                                  "Use: /msg $nick message")).
+                            ToMessage();
+                        Session.AddMessageToFrontend(cmd, msg);
                         break;
+                    }
                 }
             } else if (cmd.Chat.ChatType == ChatType.Person) {
                 try {
@@ -798,19 +886,74 @@ namespace Smuxi.Engine
 #if LOG4NET
                     f_Logger.Error(ex);
 #endif
-                    fm.AddTextToChat(cmd.Chat, "-!- " +
-                        String.Format(_("Could not send message - Reason: {0}"),
-                                      ex.Message)
-                    );
+                    var msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendErrorText(
+                            _("Could not send message - Reason: {0}"),
+                            ex.Message).
+                        ToMessage();
+                    Session.AddMessageToFrontend(cmd, msg);
                 }
             } else {
                 // ignore protocol chat
             }
         }
 
+        public void CommandTimeline(CommandModel cmd)
+        {
+            if (cmd.DataArray.Length < 2) {
+                NotEnoughParameters(cmd);
+                return;
+            }
+
+            string keyword = cmd.Parameter;
+            string[] users = cmd.Parameter.Split(',');
+
+            string chatName = users.Length > 1 ? _("Other timelines") : "@" + users[0];
+            ChatModel chat;
+
+            if (users.Length > 1) {
+                chat = Session.CreateChat<GroupChatModel>(keyword, chatName, this);
+            } else {
+                var userResponse = TwitterUser.Show(f_OAuthTokens, users [0], f_OptionalProperties);
+                CheckResponse(userResponse);
+                var person = GetPerson(userResponse.ResponseObject);
+                chat = Session.CreatePersonChat(person, person.ID + "/timeline",
+                                                chatName, this);
+            }
+
+            var statuses = new List<TwitterStatus>();
+            foreach (var user in users) {
+                var opts = CreateOptions<UserTimelineOptions>();
+                opts.ScreenName = user;
+                var statusCollectionResponse = TwitterTimeline.UserTimeline(f_OAuthTokens, opts);
+                CheckResponse(statusCollectionResponse);
+
+                foreach (var status in statusCollectionResponse.ResponseObject) {
+                    statuses.Add(status);
+                }
+            }
+
+            var sortedStatuses = SortTimeline(statuses);
+            foreach (var status in sortedStatuses) {
+                AddIndexToStatus(status);
+                var msg = CreateMessageBuilder().
+                    Append(status, GetPerson(status.User)).ToMessage();
+                chat.MessageBuffer.Add(msg);
+                var userId = status.User.Id.ToString();
+                var groupChat = chat as GroupChatModel;
+                if (groupChat != null) {
+                    if (!groupChat.UnsafePersons.ContainsKey(userId)) {
+                        groupChat.UnsafePersons.Add(userId, GetPerson(status.User));
+                    }
+                }
+            }
+            Session.AddChat(chat);
+            Session.SyncChat(chat);
+        }
+
         public void CommandMessage(CommandModel cmd)
         {
-            FrontendManager fm = cmd.FrontendManager;
             string nickname;
             if (cmd.DataArray.Length >= 2) {
                 nickname = cmd.DataArray[1];
@@ -822,9 +965,12 @@ namespace Smuxi.Engine
             var response = TwitterUser.Show(f_OAuthTokens, nickname,
                                             f_OptionalProperties);
             if (response.Result != RequestResult.Success) {
-                fm.AddTextToChat(cmd.Chat, "-!- " +
-                    _("Could not send message - the specified user does not exist.")
-                );
+                var msg = CreateMessageBuilder().
+                    AppendEventPrefix().
+                    AppendErrorText(_("Could not send message - the " +
+                                      "specified user does not exist.")).
+                    ToMessage();
+                Session.AddMessageToFrontend(cmd, msg);
                 return;
             }
             var user = response.ResponseObject;
@@ -835,29 +981,193 @@ namespace Smuxi.Engine
                 try {
                     SendMessage(user.ScreenName, message);
                 } catch (Exception ex) {
-                    fm.AddTextToChat(chat, "-!- " +
-                        String.Format(_("Could not send message - Reason: {0}"),
-                                      ex.Message)
-                    );
+                    var msg = CreateMessageBuilder().
+                        AppendEventPrefix().
+                        AppendErrorText(
+                            _("Could not send message - Reason: {0}"),
+                            ex.Message).
+                        ToMessage();
+                    Session.AddMessageToFrontend(cmd.FrontendManager, chat, msg);
                 }
             }
-         }
+        }
+
+        public void CommandFollow(CommandModel cmd)
+        {
+            if (cmd.DataArray.Length < 2) {
+                NotEnoughParameters(cmd);
+                return;
+            }
+
+            var chat = cmd.Chat as GroupChatModel;
+            if (chat == null) {
+                return;
+            }
+
+            var options = CreateOptions<CreateFriendshipOptions>();
+            options.Follow = true;
+            decimal userId;
+            TwitterResponse<TwitterUser> res;
+            if (Decimal.TryParse(cmd.Parameter, out userId)) {
+                // parameter is an ID
+                res = TwitterFriendship.Create(f_OAuthTokens, userId, options);
+            } else {
+                // parameter is a screen name
+                var screenName = cmd.Parameter;
+                res = TwitterFriendship.Create(f_OAuthTokens, screenName, options);
+            }
+            CheckResponse(res);
+            var person = CreatePerson(res.ResponseObject);
+            if (chat.GetPerson(person.ID) == null) {
+                Session.AddPersonToGroupChat(chat, person);
+            }
+        }
+
+        public void CommandUnfollow(CommandModel cmd)
+        {
+            if (cmd.DataArray.Length < 2) {
+                NotEnoughParameters(cmd);
+                return;
+            }
+
+            var chat = cmd.Chat as GroupChatModel;
+            if (chat == null) {
+                return;
+            }
+
+            PersonModel person;
+            var persons = chat.Persons;
+            if (persons.TryGetValue(cmd.Parameter, out person)) {
+                // parameter is an ID
+                decimal userId;
+                Decimal.TryParse(cmd.Parameter, out userId);
+                var res = TwitterFriendship.Delete(f_OAuthTokens, userId, f_OptionalProperties);
+                CheckResponse(res);
+            } else {
+                // parameter is a screen name
+                var screenName = cmd.Parameter;
+                person = persons.Single((arg) => arg.Value.IdentityName == screenName).Value;
+                var res = TwitterFriendship.Delete(f_OAuthTokens, screenName, f_OptionalProperties);
+                CheckResponse(res);
+            }
+            Session.RemovePersonFromGroupChat(chat, person);
+        }
 
-        private List<TwitterStatus> SortTimeline(TwitterStatusCollection timeline)
+        public bool IsHomeTimeLine(ChatModel chatModel)
+        {
+            return chatModel.Equals(f_FriendsTimelineChat);
+        }
+
+        private List<TwitterStatus> SortTimeline(IList<TwitterStatus> timeline)
         {
             List<TwitterStatus> sortedTimeline =
                 new List<TwitterStatus>(
-                    timeline.Count
+                    timeline
                 );
-            foreach (TwitterStatus status in timeline) {
-                sortedTimeline.Add(status);
-            }
             sortedTimeline.Sort(
                 (a, b) => (a.CreatedDate.CompareTo(b.CreatedDate))
             );
             return sortedTimeline;
         }
 
+        public void CommandSearch(CommandModel cmd)
+        {
+            if (cmd.DataArray.Length < 2) {
+                NotEnoughParameters(cmd);
+                return;
+            }
+
+            var keyword = cmd.Parameter;
+            var chatName = String.Format(_("Search {0}"), keyword);
+            var chat = Session.CreateChat<GroupChatModel>(keyword, chatName, this);
+            Session.AddChat(chat);
+            var options = CreateOptions<SearchOptions>();
+            options.Count = 50;
+            var response = TwitterSearch.Search(f_OAuthTokens, keyword, options);
+            CheckResponse(response);
+            var search = response.ResponseObject;
+            var sortedSearch = SortTimeline(search);
+            foreach (var status in sortedSearch) {
+                AddIndexToStatus(status);
+                var msg = CreateMessageBuilder().
+                    Append(status, GetPerson(status.User)).
+                    ToMessage();
+                chat.MessageBuffer.Add(msg);
+                var userId = status.User.Id.ToString();
+                if (!chat.UnsafePersons.ContainsKey(userId)) {
+                    chat.UnsafePersons.Add(userId, GetPerson(status.User));
+                }
+            }
+            Session.SyncChat(chat);
+        }
+
+        public void CommandRetweet(CommandModel cmd)
+        {
+            if (cmd.DataArray.Length < 2) {
+                NotEnoughParameters(cmd);
+                return;
+            }
+
+
+            TwitterStatus status = null;
+            int indexId;
+            if (Int32.TryParse(cmd.Parameter, out indexId)) {
+                status = GetStatusFromIndex(indexId);
+            }
+
+            decimal statusId;
+            if (status == null) {
+                if (!Decimal.TryParse(cmd.Parameter, out statusId)) {
+                    return;
+                }
+            } else {
+                statusId = status.Id;
+            }
+            var response = TwitterStatus.Retweet(f_OAuthTokens, statusId, f_OptionalProperties);
+            CheckResponse(response);
+            status = response.ResponseObject;
+
+            var msg = CreateMessageBuilder().
+                Append(status, GetPerson(status.User)).
+                ToMessage();
+            Session.AddMessageToChat(f_FriendsTimelineChat, msg);
+        }
+
+        public void CommandReply(CommandModel cmd)
+        {
+            if (cmd.DataArray.Length < 3) {
+                NotEnoughParameters(cmd);
+                return;
+            }
+
+            var id = cmd.DataArray[1];
+            TwitterStatus status = null;
+            int indexId;
+            if (Int32.TryParse(id, out indexId)) {
+                status = GetStatusFromIndex(indexId);
+            }
+
+            decimal statusId;
+            if (status == null) {
+                if (!Decimal.TryParse(id, out statusId)) {
+                    return;
+                }
+                var response = TwitterStatus.Show(f_OAuthTokens, statusId,
+                                                  f_OptionalProperties);
+                CheckResponse(response);
+                status = response.ResponseObject;
+            }
+
+            var text = String.Join(" ", cmd.DataArray.Skip(2).ToArray());
+            // the screen name must be somewhere in the message for replies
+            if (!text.Contains("@" + status.User.ScreenName)) {
+                text = String.Format("@{0} {1}", status.User.ScreenName, text);
+            }
+            var options = CreateOptions<StatusUpdateOptions>();
+            options.InReplyToStatusId = status.Id;
+            PostUpdate(text, options);
+        }
+
         private List<TwitterDirectMessage> SortTimeline(TwitterDirectMessageCollection timeline)
         {
             var sortedTimeline = new List<TwitterDirectMessage>(timeline.Count);
@@ -912,8 +1222,14 @@ namespace Smuxi.Engine
 #if LOG4NET
                 f_Logger.Error("UpdateFriendsTimelineThread(): Exception", ex);
 #endif
-                string msg =_("An error occurred while fetching the friends timeline from Twitter. Reason: ");
-                Session.AddTextToChat(f_ProtocolChat, "-!- " + msg + ex.Message);
+                var msg = CreateMessageBuilder().
+                    AppendEventPrefix().
+                    AppendErrorText(
+                        _("An error occurred while fetching the friends " +
+                          "timeline from Twitter. Reason: {0}"),
+                        ex.Message).
+                    ToMessage();
+                Session.AddMessageToChat(Chat, msg);
             } finally {
 #if LOG4NET
                 f_Logger.Debug("UpdateFriendsTimelineThread(): finishing thread.");
@@ -955,25 +1271,24 @@ namespace Smuxi.Engine
 
             List<TwitterStatus> sortedTimeline = SortTimeline(timeline);
             foreach (TwitterStatus status in sortedTimeline) {
-                String text;
-                // LAME: Twitter lies in the truncated field and says it's not
-                // truncated while it is, thus always use retweet_status if
-                // available
-                if (status.RetweetedStatus != null) {
-                    text = String.Format(
-                        "RT @{0}: {1}",
-                        status.RetweetedStatus.User.ScreenName,
-                        status.RetweetedStatus.Text
+                AddIndexToStatus(status);
+                var msg = CreateMessageBuilder().
+                    Append(status, GetPerson(status.User)).
+                    ToMessage();
+                Session.AddMessageToChat(f_FriendsTimelineChat, msg);
+
+                if (status.User.Id.ToString() == Me.ID) {
+                    OnMessageSent(
+                        new MessageEventArgs(f_FriendsTimelineChat, msg, null,
+                                             status.InReplyToScreenName ?? String.Empty)
                     );
                 } else {
-                    text = status.Text;
+                    OnMessageReceived(
+                        new MessageEventArgs(f_FriendsTimelineChat, msg,
+                                             status.User.ScreenName,
+                                             status.InReplyToScreenName ?? String.Empty)
+                    );
                 }
-                MessageModel msg = CreateMessage(
-                    status.CreatedDate,
-                    status.User,
-                    text
-                );
-                Session.AddMessageToChat(f_FriendsTimelineChat, msg);
 
                 f_LastFriendsTimelineStatusID = status.Id;
             }
@@ -1019,8 +1334,14 @@ namespace Smuxi.Engine
 #if LOG4NET
                 f_Logger.Error("UpdateRepliesThread(): Exception", ex);
 #endif
-                string msg =_("An error occurred while fetching the replies from Twitter. Reason: ");
-                Session.AddTextToChat(f_ProtocolChat, "-!- " + msg + ex.Message);
+                var msg = CreateMessageBuilder().
+                    AppendEventPrefix().
+                    AppendErrorText(
+                        _("An error occurred while fetching the replies " +
+                          "from Twitter. Reason: {0}"),
+                        ex.Message).
+                    ToMessage();
+                Session.AddMessageToChat(Chat, msg);
             } finally {
 #if LOG4NET
                 f_Logger.Debug("UpdateRepliesThread(): finishing thread.");
@@ -1061,14 +1382,18 @@ namespace Smuxi.Engine
             bool highlight = f_LastReplyStatusID != 0;
             List<TwitterStatus> sortedTimeline = SortTimeline(timeline);
             foreach (TwitterStatus status in sortedTimeline) {
-                MessageModel msg = CreateMessage(
-                    status.CreatedDate,
-                    status.User,
-                    status.Text,
-                    highlight
-                );
+                AddIndexToStatus(status);
+                var msg = CreateMessageBuilder().
+                    Append(status, GetPerson(status.User), highlight).
+                    ToMessage();
                 Session.AddMessageToChat(f_RepliesChat, msg);
 
+                OnMessageReceived(
+                    new MessageEventArgs(f_RepliesChat, msg,
+                                         status.User.ScreenName,
+                                         status.InReplyToScreenName ?? String.Empty)
+                );
+
                 f_LastReplyStatusID = status.Id;
             }
         }
@@ -1115,8 +1440,14 @@ namespace Smuxi.Engine
 #if LOG4NET
                 f_Logger.Error("UpdateDirectMessagesThread(): Exception", ex);
 #endif
-                string msg =_("An error occurred while fetching direct messages from Twitter. Reason: ");
-                Session.AddTextToChat(f_ProtocolChat, "-!- " + msg + ex.Message);
+                var msg = CreateMessageBuilder().
+                    AppendEventPrefix().
+                    AppendErrorText(
+                        _("An error occurred while fetching direct messages " +
+                          "from Twitter. Reason: {0}"),
+                        ex.Message).
+                    ToMessage();
+                Session.AddMessageToChat(Chat, msg);
             } finally {
 #if LOG4NET
                 f_Logger.Debug("UpdateDirectMessagesThread(): finishing thread.");
@@ -1197,12 +1528,9 @@ namespace Smuxi.Engine
                 // this is a new one!
                 bool highlight = receivedTimeline.Contains(directMsg) &&
                                  f_LastDirectMessageReceivedStatusID != 0;
-                MessageModel msg = CreateMessage(
-                    directMsg.CreatedDate,
-                    directMsg.Sender,
-                    directMsg.Text,
-                    highlight
-                );
+                var msg = CreateMessageBuilder().
+                    Append(directMsg, GetPerson(directMsg.Sender), highlight).
+                    ToMessage();
                 Session.AddMessageToChat(f_DirectMessagesChat, msg);
 
                 // if there is a tab open for this user put the message there too
@@ -1210,9 +1538,19 @@ namespace Smuxi.Engine
                 if (receivedTimeline.Contains(directMsg)) {
                     // this is a received message
                     userId =  directMsg.SenderId.ToString();
+
+                    OnMessageReceived(
+                        new MessageEventArgs(f_DirectMessagesChat, msg,
+                                             directMsg.SenderScreenName, null)
+                    );
                 } else {
                     // this is a sent message
                     userId = directMsg.RecipientId.ToString();
+
+                    OnMessageSent(
+                        new MessageEventArgs(f_DirectMessagesChat, msg,
+                                             null, directMsg.RecipientScreenName)
+                    );
                 }
                 ChatModel chat =  Session.GetChat(
                     userId,
@@ -1302,33 +1640,15 @@ namespace Smuxi.Engine
             CheckResponse(response);
             var user = response.ResponseObject;
             f_TwitterUser = user;
+            Me = CreatePerson(f_TwitterUser);
 #if LOG4NET
             f_Logger.Debug("UpdateUser(): done.");
 #endif
         }
 
-        private MessageModel CreateMessage(DateTime when, TwitterUser from,
-                                           string message)
+        protected new TwitterMessageBuilder CreateMessageBuilder()
         {
-            return CreateMessage(when, from, message, false);
-        }
-
-        private MessageModel CreateMessage(DateTime when, TwitterUser from,
-                                           string message, bool highlight)
-        {
-            if (from == null) {
-                throw new ArgumentNullException("from");
-            }
-            if (message == null) {
-                throw new ArgumentNullException("message");
-            }
-
-            var builder = CreateMessageBuilder();
-            // MessageModel serializer expects UTC values
-            builder.TimeStamp = when.ToUniversalTime();
-            builder.AppendSenderPrefix(GetPerson(from), highlight);
-            builder.AppendMessage(message);
-            return builder.ToMessage();
+            return CreateMessageBuilder<TwitterMessageBuilder>();
         }
 
         private T CreateOptions<T>() where T : OptionalProperties, new()
@@ -1339,9 +1659,16 @@ namespace Smuxi.Engine
             return options;
         }
 
-        private void PostUpdate(string text)
+        void PostUpdate(string text)
         {
-            var options = CreateOptions<StatusUpdateOptions>();
+            PostUpdate(text, null);
+        }
+
+        void PostUpdate(string text, StatusUpdateOptions options)
+        {
+            if (options == null) {
+                options = CreateOptions<StatusUpdateOptions>();
+            }
             var res = TwitterStatus.Update(f_OAuthTokens, text, options);
             CheckResponse(res);
             f_FriendsTimelineEvent.Set();
@@ -1354,7 +1681,35 @@ namespace Smuxi.Engine
             CheckResponse(res);
             f_DirectMessageEvent.Set();
         }
-        
+
+        void AddIndexToStatus(TwitterStatus status)
+        {
+            lock (StatusIndex) {
+                var slot = ++StatusIndexOffset;
+                if (slot > StatusIndex.Length) {
+                    StatusIndexOffset = 0;
+                    slot = 1;
+                }
+                StatusIndex[slot - 1] = status;
+                status.Text = String.Format("[{0:00}] {1}", slot, status.Text);
+                var rtStatus = status.RetweetedStatus;
+                if (rtStatus != null) {
+                    rtStatus.Text = String.Format("[{0:00}] {1}", slot,
+                                                  rtStatus.Text);
+                }
+            }
+        }
+
+        TwitterStatus GetStatusFromIndex(int slot)
+        {
+            lock (StatusIndex) {
+                if (slot > StatusIndex.Length || slot < 1) {
+                    return null;
+                }
+                return StatusIndex[slot - 1];
+            }
+        }
+
         private void CheckTwitterizerException(TwitterizerException exception)
         {
             Trace.Call(exception == null ? null : exception.GetType());
diff --git a/src/Engine-XMPP/Config/XmppPersonModel.cs b/src/Engine-XMPP/Config/XmppPersonModel.cs
index e1891a4..a5dfb78 100644
--- a/src/Engine-XMPP/Config/XmppPersonModel.cs
+++ b/src/Engine-XMPP/Config/XmppPersonModel.cs
@@ -33,6 +33,7 @@ namespace Smuxi.Engine
         public Presence Presence { get; set; }
         public DiscoInfo Disco { get; set; }
         public string Name { get; set; }
+        public string NicknameContactKnowsFromMe { get; set; }
     }
     
     internal class XmppPersonModel : PersonModel
@@ -40,7 +41,6 @@ namespace Smuxi.Engine
         public bool Temporary { get; set; }
         public Jid Jid { get; set; }
         public Dictionary<string, XmppResourceModel> Resources { get; private set; }
-        public Dictionary<Jid, XmppResourceModel> MucResources { get; private set; }
         public SubscriptionType Subscription { get; set; }
         public AskType Ask { get; set; }
         public XmppPersonModel(Jid jid, string nick, XmppProtocolManager protocolManager)
@@ -49,7 +49,6 @@ namespace Smuxi.Engine
             Trace.Call(jid, nick, protocolManager);
             Jid = jid.Bare;
             Resources = new Dictionary<string, XmppResourceModel>();
-            MucResources = new Dictionary<Jid, XmppResourceModel>();
             Ask = AskType.NONE;
             Subscription = SubscriptionType.none;
             Temporary = true;
@@ -86,19 +85,6 @@ namespace Smuxi.Engine
             return ret;
         }
 
-        public XmppResourceModel GetOrCreateMucResource(Jid jid)
-        {
-            Trace.Call(jid);
-            XmppResourceModel ret;
-            if (MucResources.TryGetValue(jid, out ret)) {
-                return ret;
-            }
-            ret = new XmppResourceModel();
-            ret.Name = jid;
-            MucResources.Add(jid, ret);
-            return ret;
-        }
-        
         public List<XmppResourceModel> GetResourcesWithHighestPriority()
         {
             List<XmppResourceModel> ret = new List<XmppResourceModel>();
diff --git a/src/Engine-XMPP/Config/XmppServerModel.cs b/src/Engine-XMPP/Config/XmppServerModel.cs
index f7370a5..c29c3a7 100644
--- a/src/Engine-XMPP/Config/XmppServerModel.cs
+++ b/src/Engine-XMPP/Config/XmppServerModel.cs
@@ -34,7 +34,6 @@ namespace Smuxi.Engine
             // choose somewhat reasonable defaults
             Priorities[PresenceStatus.Online] = 5;
             Priorities[PresenceStatus.Away] = 0;
-            Resource = "smuxi";
             Protocol = "XMPP";
         }
         
diff --git a/src/Engine-XMPP/Makefile.in b/src/Engine-XMPP/Makefile.in
index 7b8059b..d6f5f4c 100644
--- a/src/Engine-XMPP/Makefile.in
+++ b/src/Engine-XMPP/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -219,6 +219,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
index a68e741..a02ad0c 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
@@ -28,6 +28,7 @@ namespace Smuxi.Engine
         internal bool SeenNewMessages { get; set; }
         internal string OwnNickname { get; set; }
         internal string Password { get; set; }
+        internal bool IsJoining { get; set; }
 
         public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
                          base(id, name, networkManager)
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs b/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
index 6f6c8fa..5934f13 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
+++ b/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
@@ -52,6 +52,7 @@ using Starksoft.Net.Proxy;
 
 using Smuxi.Common;
 using System.Runtime.CompilerServices;
+using agsXMPP.protocol.extensions.nickname;
 
 namespace Smuxi.Engine
 {
@@ -75,45 +76,51 @@ namespace Smuxi.Engine
 #if LOG4NET
         static readonly log4net.ILog _Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 #endif
+        static readonly string LibraryTextDomain = "smuxi-engine-xmpp";
         XmppClientConnection JabberClient { get; set; }
         MucManager MucManager { get; set; }
         DiscoManager Disco { get; set; }
         string[] Nicknames { get; set; }
-        
         Dictionary<Jid, XmppPersonModel> Contacts { get; set; }
         Dictionary<string, DiscoInfo> DiscoCache { get; set; }
-
         ChatModel NetworkChat { get; set; }
         GroupChatModel ContactChat { get; set; }
-        
         XmppServerModel Server { get; set; }
-        
         // facebook messed up, this is part of a hack to fix that messup
         string LastSentMessage { get; set; }
         bool SupressLocalMessageEcho { get; set; }
         bool AutoReconnect { get; set; }
-        int AutoReconnectDelay { get; set; }
-
+        TimeSpan AutoReconnectDelay { get; set; }
         bool IsFacebook { get; set; }
+        bool IsDisposed { get; set; }
+        bool ShowChatStates { get; set; }
+        // pidgin's psychic mode
+        bool OpenNewChatOnChatState { get; set; }
 
         public override string NetworkID {
             get {
                 return Host;
             }
         }
-        
+
         public override string Protocol {
             get {
                 return "XMPP";
             }
         }
-        
+
         public override ChatModel Chat {
             get {
                 return NetworkChat;
             }
         }
 
+        public override bool IsConnected {
+            get {
+                return JabberClient.Authenticated;
+            }
+        }
+
         public XmppProtocolManager(Session session) : base(session)
         {
             Trace.Call(session);
@@ -121,10 +128,10 @@ namespace Smuxi.Engine
             DiscoCache = new Dictionary<string, DiscoInfo>();
 
             SupressLocalMessageEcho = false;
-            AutoReconnectDelay = 60;
+            ShowChatStates = true;
+            OpenNewChatOnChatState = true;
 
             JabberClient = new XmppClientConnection();
-            JabberClient.Resource = "Smuxi";
             JabberClient.AutoRoster = true;
             JabberClient.AutoPresence = true;
             JabberClient.OnMessage += OnMessage;
@@ -138,6 +145,7 @@ namespace Smuxi.Engine
             JabberClient.OnWriteXml += OnWriteXml;
             JabberClient.OnAuthError += OnAuthError;
             JabberClient.OnIq += OnIq;
+            JabberClient.SendingServiceUnavailable += OnSendingServiceUnavailable;
             JabberClient.AutoAgents = false; // outdated feature
             JabberClient.EnableCapabilities = true;
             JabberClient.Capabilities.Node = "https://smuxi.im";
@@ -167,6 +175,30 @@ namespace Smuxi.Engine
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
+        void OnSendingServiceUnavailable(object sender, SendingServiceUnavailableEventArgs e)
+        {
+            if (e.Stanza.To == null) {
+                // can only be received by the server
+                return;
+            }
+            if (e.Stanza.To == JabberClient.MyJID.Server) {
+                // explicitly targeting the server
+                return;
+            }
+            XmppPersonModel person;
+            if (!Contacts.TryGetValue(e.Stanza.To.Bare, out person)) {
+                e.Cancel = true;
+                return;
+            }
+            if (person.Subscription != SubscriptionType.both &&
+                person.Subscription != SubscriptionType.from) {
+                e.Cancel = true;
+                return;
+            }
+            // the person already knows we are online, this does not give away our privacy
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
         void OnStreamError(object sender, agsXMPP.Xml.Dom.Element e)
         {
             Trace.Call(sender, e);
@@ -211,9 +243,6 @@ namespace Smuxi.Engine
         {
             Trace.Call(fm, server);
 
-            if (fm == null) {
-                throw new ArgumentNullException("fm");
-            }
             if (server == null) {
                 throw new ArgumentNullException("server");
             }
@@ -260,6 +289,7 @@ namespace Smuxi.Engine
             Contacts.Clear();
 
             AutoReconnect = true;
+            AutoReconnectDelay = TimeSpan.FromMinutes(1);
 
             ApplyConfig(Session.UserConfig, Server);
 
@@ -276,17 +306,23 @@ namespace Smuxi.Engine
         public override void Reconnect(FrontendManager fm)
         {
             Trace.Call(fm);
-
-            AutoReconnect = true;
-            JabberClient.Close();
+            // IsConnected checks for a working xmpp connection
+            // we need to know the socket's state here
+            if (JabberClient.XmppConnectionState != XmppConnectionState.Disconnected) {
+                AutoReconnect = true;
+                AutoReconnectDelay = TimeSpan.Zero;
+                JabberClient.Close();
+            } else {
+                JabberClient.ClientSocket.OnValidateCertificate -= ValidateCertificate;
+                JabberClient.SocketConnectionType = SocketConnectionType.Direct;
+                Reconnect();
+            }
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
         public override void Disconnect(FrontendManager fm)
         {
             Trace.Call(fm);
-            
-            IsConnected = false;
             AutoReconnect = false;
             JabberClient.Close();
         }
@@ -295,12 +331,24 @@ namespace Smuxi.Engine
         public override void Dispose()
         {
             Trace.Call();
+            IsDisposed = true;
 
             base.Dispose();
-            
-            IsConnected = false;
             AutoReconnect = false;
-            JabberClient.Close();
+            JabberClient.OnMessage -= OnMessage;
+            JabberClient.OnClose -= OnClose;
+            JabberClient.OnLogin -= OnLogin;
+            JabberClient.OnError -= OnError;
+            JabberClient.OnStreamError -= OnStreamError;
+            JabberClient.OnPresence -= OnPresence;
+            JabberClient.OnRosterItem -= OnRosterItem;
+            JabberClient.OnReadXml -= OnReadXml;
+            JabberClient.OnWriteXml -= OnWriteXml;
+            JabberClient.OnAuthError -= OnAuthError;
+            JabberClient.OnIq -= OnIq;
+            JabberClient.ClientSocket.OnValidateCertificate -= ValidateCertificate;
+            JabberClient.SendingServiceUnavailable -= OnSendingServiceUnavailable;
+            JabberClient.SocketDisconnect();
         }
 
         // this method is used as status / title
@@ -313,6 +361,11 @@ namespace Smuxi.Engine
             return status;
         }
 
+        DiscoItems ServerDiscoItems { get; set; }
+        List<Jid> CachedMucJids { get; set; }
+        Dictionary<Jid, DiscoInfo> CachedMucInfo { get; set; }
+        DateTime CachedMucJidsTimeStamp { get; set; }
+
         // no need to synchronize this method as it only checks for null
         public override IList<GroupChatModel> FindGroupChats(GroupChatModel filter)
         {
@@ -322,9 +375,183 @@ namespace Smuxi.Engine
             if (ContactChat == null) {
                 list.Add(new GroupChatModel("Contacts", "Contacts", this));
             }
+
+            // find all transport/conference groups/whatnot
+            DiscoItem[] discoItems;
+            if (ServerDiscoItems == null) {
+                var reset = new AutoResetEvent(false);
+                lock (this) {
+                    Disco.DiscoverItems(JabberClient.Server, (sender, e) => FindGroupChatsDiscoItems(e, reset));
+                }
+                reset.WaitOne();
+            }
+            lock (this) {
+                if (ServerDiscoItems == null) {
+                    return list;
+                } else {
+                    discoItems = ServerDiscoItems.GetDiscoItems();
+                }
+            }
+
+            var resetList = new List<AutoResetEvent>();
+
+            if ((CachedMucJids == null) ||
+                ((DateTime.Now - CachedMucJidsTimeStamp) > TimeSpan.FromMinutes(5))) {
+                // find all conference groups
+                var mucList = new List<Jid>();
+                foreach (var discoItem in discoItems) {
+                    var reset = new AutoResetEvent(false);
+                    var jid = discoItem.Jid;
+                    lock (this) {
+                        Disco.DiscoverInformation(discoItem.Jid, (sender, e) => FindGroupChatsItemDiscoInfo(e, reset, mucList, jid));
+                    }
+                    resetList.Add(reset);
+                }
+                foreach (var reset in resetList) {
+                    reset.WaitOne();
+                }
+                resetList.Clear();
+
+                // find all chats in all conference groups
+                var jidList = new List<Jid>();
+                foreach (var mucGroup in mucList) {
+                    var reset = new AutoResetEvent(false);
+                    lock (this) {
+                        Disco.DiscoverItems(mucGroup, (sender, e) => FindGroupChatsDiscoMucs(e, reset, jidList));
+                    }
+                    resetList.Add(reset);
+                }
+                foreach (var reset in resetList) {
+                    reset.WaitOne();
+                }
+                CachedMucJids = jidList;
+                CachedMucJidsTimeStamp = DateTime.Now;
+                CachedMucInfo = new Dictionary<Jid, DiscoInfo>();
+            }
+
+            // filter found items
+            var filteredList = new List<Jid>();
+            if (filter == null || String.IsNullOrEmpty(filter.Name)) {
+                filteredList = CachedMucJids;
+            } else {
+                string searchPattern = null;
+                if (!filter.Name.StartsWith("*") && !filter.Name.EndsWith("*")) {
+                    searchPattern = String.Format("*{0}*", filter.Name);
+                } else {
+                    searchPattern = filter.Name;
+                }
+                foreach (var jid in CachedMucJids) {
+                    if (!Pattern.IsMatch(jid, searchPattern)) {
+                        continue;
+                    }
+                    filteredList.Add(jid);
+                }
+            }
+
+            // get info on all chats matching the pattern
+            resetList.Clear();
+            foreach (var jid in CachedMucJids) {
+                bool isCached = false;
+                DiscoInfo info;
+                lock (this) {
+                    isCached = CachedMucInfo.TryGetValue(jid, out info);
+                }
+                if (isCached) {
+                    FindGroupChatsChatInfoParse(jid, info, list);
+                    continue;
+                }
+                var reset = new AutoResetEvent(false);
+                lock (this) {
+                    Disco.DiscoverInformation(jid, (sender, e) => FindGroupChatsChatInfo(e, reset, list));
+                }
+                resetList.Add(reset);
+            }
+            foreach (var reset in resetList) {
+                reset.WaitOne();
+            }
             return list;
         }
 
+        void FindGroupChatsChatInfoParse(Jid jid, DiscoInfo items, List<GroupChatModel> list)
+        {
+            var ident = items.SelectSingleElement<DiscoIdentity>();
+            string name;
+            if (ident != null && !String.IsNullOrEmpty(ident.Name)) {
+                name = ident.Name + " [" + jid + "]";
+            } else {
+                name = jid;
+            }
+            var chat = new GroupChatModel(jid, name, null);
+            chat.PersonCount = -1;
+            var x = items.SelectSingleElement<agsXMPP.protocol.x.data.Data>();
+            if (x != null) {
+                var users_field = x.GetField("muc#roominfo_occupants");
+                var topic_field = x.GetField("muc#roominfo_subject");
+                var desc_field = x.GetField("muc#roominfo_description");
+                if (users_field != null) {
+                    chat.PersonCount = int.Parse(users_field.GetValue());
+                }
+                if (topic_field != null) {
+                    chat.Topic = new MessageModel(topic_field.GetValue());
+                } else if (desc_field != null) {
+                    chat.Topic = new MessageModel(desc_field.GetValue());
+                }
+            }
+            lock (list) {
+                list.Add(chat);
+            }
+        }
+
+        void FindGroupChatsChatInfo(IQEventArgs e, AutoResetEvent reset, List<GroupChatModel> list)
+        {
+            if (e.IQ.Error == null) {
+                var items = (DiscoInfo)e.IQ.Query;
+                lock (this) {
+                    CachedMucInfo[e.IQ.From] = items;
+                }
+                FindGroupChatsChatInfoParse(e.IQ.From, items, list);
+            }
+            e.Handled = true;
+            reset.Set();
+        }
+
+        void FindGroupChatsDiscoMucs(IQEventArgs e, AutoResetEvent reset, List<Jid> list)
+        {
+            if (e.IQ.Error == null) {
+                var items = (DiscoItems)e.IQ.Query;
+                foreach (var item in items.GetDiscoItems()) {
+                    // no locking required, these callbacks are sequential
+                    list.Add(item.Jid);
+                }
+            }
+            e.Handled = true;
+            reset.Set();
+        }
+
+        void FindGroupChatsItemDiscoInfo(IQEventArgs e, AutoResetEvent reset, List<Jid> mucList, Jid jid)
+        {
+            if (e.IQ.Error == null) {
+                var discoInfo = (DiscoInfo)e.IQ.Query;
+                if (discoInfo.HasFeature(agsXMPP.Uri.MUC)) {
+                    // no locking required, these callbacks are sequential
+                    mucList.Add(jid);
+                }
+            }
+            e.Handled = true;
+            reset.Set();
+        }
+
+        void FindGroupChatsDiscoItems(IQEventArgs e, AutoResetEvent reset)
+        {
+            if (e.IQ.Error == null) {
+                lock (this) {
+                    ServerDiscoItems = (DiscoItems)e.IQ.Query;
+                }
+            }
+            e.Handled = true;
+            reset.Set();
+        }
+
         [MethodImpl(MethodImplOptions.Synchronized)]
         public void OpenContactChat()
         {
@@ -349,7 +576,14 @@ namespace Smuxi.Engine
             // HACK: lower probability of sync race condition during connect
             ThreadPool.QueueUserWorkItem(delegate {
                 Thread.Sleep(5000);
-                Session.SyncChat(ContactChat);
+                lock (this) {
+                    if (IsDisposed) {
+                        return;
+                    }
+                    if (ContactChat != null) {
+                        Session.SyncChat(ContactChat);
+                    }
+                }
             });
         }
 
@@ -381,7 +615,11 @@ namespace Smuxi.Engine
                 Session.RemoveChat(chat);
                 ContactChat = null;
             } else if (chat.ChatType == ChatType.Group) {
-                MucManager.LeaveRoom(chat.ID, ((XmppGroupChatModel)chat).OwnNickname);
+                if (IsConnected) {
+                    MucManager.LeaveRoom(chat.ID, ((XmppGroupChatModel)chat).OwnNickname);
+                } else {
+                    Session.RemoveChat(chat);
+                }
             } else if (chat.ChatType == ChatType.Person) {
                 Session.RemoveChat(chat);
             } else {
@@ -397,7 +635,7 @@ namespace Smuxi.Engine
         {
             Trace.Call(status, message);
 
-            if (!IsConnected || !JabberClient.Authenticated) {
+            if (!IsConnected) {
                 return;
             }
 
@@ -405,6 +643,7 @@ namespace Smuxi.Engine
                 case PresenceStatus.Online:
                     JabberClient.Show = ShowType.NONE;
                     JabberClient.Priority = Server.Priorities[status];
+                    JabberClient.Status = message;
                     break;
                 case PresenceStatus.Away:
                     JabberClient.Priority = Server.Priorities[status];
@@ -513,7 +752,7 @@ namespace Smuxi.Engine
                     handled = true;
                 }
             }
-            
+
             return handled;
         }
 
@@ -577,7 +816,7 @@ namespace Smuxi.Engine
             var builder = CreateMessageBuilder();
             if (!Contacts.TryGetValue(jid.Bare, out person)) {
                 builder.AppendErrorText(_("Could not find contact {0}"), jid);
-                cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cmd, builder.ToMessage());
                 return;
             }
             if (!String.IsNullOrEmpty(jid.Resource)) {
@@ -585,13 +824,13 @@ namespace Smuxi.Engine
                     builder.AppendText(_("Contact {0} has {1} known resources"), jid.Bare, person.Resources.Count);
                 }
                 XmppResourceModel res;
-                if (!person.Resources.TryGetValue(jid.Resource, out res)) {
+                if (!person.Resources.TryGetValue(jid.Resource??"", out res)) {
                     builder.AppendErrorText(_("{0} is not a known resource"), jid.Resource);
-                    cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cmd, builder.ToMessage());
                     return;
                 }
                 printResource(builder, res);
-                cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cmd, builder.ToMessage());
                 return;
             }
             builder.AppendText(_("Contact's Jid: {0}"), person.Jid);
@@ -611,7 +850,7 @@ namespace Smuxi.Engine
                     break;
                 case SubscriptionType.remove:
 #if LOG4NET
-                    _Logger.Error("a contact with SubscriptionType remove has been found");
+                    _Logger.Debug("a contact with SubscriptionType remove has been found");
 #endif
                     break;
             }
@@ -621,13 +860,7 @@ namespace Smuxi.Engine
                 printResource(builder, res.Value);
                 i++;
             }
-            i = 0;
-            foreach(var res in person.MucResources) {
-                builder.AppendText("\nMucResource({0}):", i);
-                printResource(builder, res.Value);
-                i++;
-            }
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cmd, builder.ToMessage());
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
@@ -710,7 +943,7 @@ namespace Smuxi.Engine
                 default:
                     var builder = CreateMessageBuilder();
                     builder.AppendText(_("Invalid Contact command: {0}"), cmd);
-                    fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                     return;
             }
         }
@@ -721,7 +954,7 @@ namespace Smuxi.Engine
             // TRANSLATOR: this line is used as a label / category for a
             // list of commands below
             builder.AppendHeader(_("{0} Commands"), Protocol);
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cmd, builder.ToMessage());
 
             string[] help = {
             "connect xmpp/jabber server port username password [resource]",
@@ -730,22 +963,23 @@ namespace Smuxi.Engine
             "join muc-jid [password]",
             "part/leave [muc-jid]",
             "away [away-message]",
+            "roster [full]",
             "contact add/remove jid/nick",
             "contact rename jid/nick [newnick]"
             };
-            
+
             foreach (string line in help) {
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(line);
-                cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cmd, builder.ToMessage());
             }
-            
+
             // TRANSLATOR: this line is used as a label / category for a
             // list of commands below
             builder = CreateMessageBuilder();
             builder.AppendHeader(_("Advanced {0} Commands"), Protocol);
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cmd, builder.ToMessage());
 
             string[] help2 = {
             "contact addonly/subscribe/unsubscribe/approve/deny",
@@ -753,19 +987,19 @@ namespace Smuxi.Engine
             "joinas muc-jid nickname [password]",
             "priority away/online/temp priority-value"
             };
-            
+
             foreach (string line in help2) {
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(line);
-                cmd.FrontendManager.AddMessageToChat(cmd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cmd, builder.ToMessage());
             }
         }
 
         public void CommandConnect(CommandModel cd)
         {
             FrontendManager fm = cd.FrontendManager;
-            
+
             var server = new XmppServerModel();
             if (cd.DataArray.Length >= 3) {
                 server.Hostname = cd.DataArray[2];
@@ -773,35 +1007,35 @@ namespace Smuxi.Engine
                 NotEnoughParameters(cd);
                 return;
             }
-            
+
             if (cd.DataArray.Length >= 4) {
                 try {
                     server.Port = Int32.Parse(cd.DataArray[3]);
                 } catch (FormatException) {
                     var builder = CreateMessageBuilder();
                     builder.AppendText(_("Invalid port: {0}"), cd.DataArray[3]);
-                    fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    Session.AddMessageToFrontend(cd, builder.ToMessage());
                     return;
                 }
             } else {
                 NotEnoughParameters(cd);
                 return;
             }
-            
+
             if (cd.DataArray.Length >= 5) {
                 server.Username = cd.DataArray[4];
             } else {
                 NotEnoughParameters(cd);
                 return;
             }
-            
+
             if (cd.DataArray.Length >= 6) {
                 server.Password = cd.DataArray[5];
             } else {
                 NotEnoughParameters(cd);
                 return;
             }
-            
+
             if (cd.DataArray.Length >= 7) {
                 server.Resource = cd.DataArray[6];
             }
@@ -815,10 +1049,10 @@ namespace Smuxi.Engine
             if (command.DataArray.Length < 3) {
                 var builder = CreateMessageBuilder();
                 builder.AppendText(_("Priority for Available is: {0}"), Server.Priorities[PresenceStatus.Online]);
-                command.FrontendManager.AddMessageToChat(command.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(command, builder.ToMessage());
                 builder = CreateMessageBuilder();
                 builder.AppendText(_("Priority for Away is: {0}"), Server.Priorities[PresenceStatus.Away]);
-                command.FrontendManager.AddMessageToChat(command.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(command, builder.ToMessage());
                 return;
             }
             string subcmd = command.DataArray[1];
@@ -826,7 +1060,7 @@ namespace Smuxi.Engine
             if (!int.TryParse(command.DataArray[2], out prio) || prio < -128 || prio > 127) {
                 var builder = CreateMessageBuilder();
                 builder.AppendText(_("Invalid Priority: {0} (valid priorities are between -128 and 127 inclusive)"), command.DataArray[2]);
-                command.FrontendManager.AddMessageToChat(command.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(command, builder.ToMessage());
                 return;
             }
             JabberClient.Priority = prio;
@@ -929,12 +1163,16 @@ namespace Smuxi.Engine
             if (nickname == null) {
                 nickname = Nicknames[0];
             }
-            MucManager.JoinRoom(jid, nickname, password);
             if (chat == null) {
                 chat = Session.CreateChat<XmppGroupChatModel>(jid, jid, this);
                 Session.AddChat(chat);
             }
-            Session.DisableChat(chat);
+            if (chat.IsJoining) {
+                // double call to JoinRoom
+                return;
+            }
+            chat.IsJoining = true;
+            MucManager.JoinRoom(jid, nickname, password);
             if (password != null) {
                 chat.Password = password;
             }
@@ -1028,7 +1266,7 @@ namespace Smuxi.Engine
 
             MessageBuilder builder = CreateMessageBuilder();
             builder.AppendHeader("Roster");
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            Session.AddMessageToFrontend(cd, builder.ToMessage());
 
             foreach (var pair in Contacts) {
                 string status = "+";
@@ -1057,7 +1295,7 @@ namespace Smuxi.Engine
                         builder.AppendText(":\"{0}\"", p.Value.Presence.Status);
                     }
                 }
-                cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                Session.AddMessageToFrontend(cd, builder.ToMessage());
             }
         }
 
@@ -1085,27 +1323,12 @@ namespace Smuxi.Engine
             if (chat == ContactChat) {
                 return;
             }
-            
+
             if (send) {
                 if (chat.ChatType == ChatType.Person) {
                     var _person = (chat as PersonChatModel).Person as PersonModel;
                     XmppPersonModel person = GetOrCreateContact(_person.ID, _person.IdentityName);
-                    Jid jid = person.Jid;
-                    if (!String.IsNullOrEmpty(jid.Resource)) {
-                        JabberClient.Send(new Message(jid, XmppMessageType.chat, text));
-                    } else {
-                        var resources = person.GetResourcesWithHighestPriority();
-                        if (resources.Count == 0) {
-                            // no connected resource, send to bare jid
-                            JabberClient.Send(new Message(jid.Bare, XmppMessageType.chat, text));
-                        } else {
-                            foreach (var res in resources) {
-                                Jid j = new Jid(jid);
-                                j.Resource = res.Name;
-                                JabberClient.Send(new Message(j, XmppMessageType.chat, text));
-                            }
-                        }
-                    }
+                    SendPrivateMessage(person, text);
                 } else if (chat.ChatType == ChatType.Group) {
                     JabberClient.Send(new Message(chat.ID, XmppMessageType.groupchat, text));
                     return; // don't show now. the message will be echoed back if it's sent successfully
@@ -1117,11 +1340,55 @@ namespace Smuxi.Engine
                 LastSentMessage = text;
             }
 
+            var builder = CreateMessageBuilder();
+            builder.AppendSenderPrefix(Me);
+            builder.AppendMessage(text);
+            var msg = builder.ToMessage();
             if (display) {
-                var builder = CreateMessageBuilder();
-                builder.AppendSenderPrefix(Me);
-                builder.AppendMessage(text);
-                Session.AddMessageToChat(chat, builder.ToMessage());
+                Session.AddMessageToChat(chat, msg);
+            }
+            OnMessageSent(
+                new MessageEventArgs(chat, msg, null, chat.ID)
+            );
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
+        void SendPrivateMessage(XmppPersonModel person, Jid jid, string text)
+        {
+            var mesg = new Message(jid, XmppMessageType.chat, text);
+            XmppResourceModel res;
+            if (person.Resources.TryGetValue(jid.Resource ?? "", out res)) {
+                if (res.NicknameContactKnowsFromMe != Nicknames[0]) {
+                    res.NicknameContactKnowsFromMe = Nicknames[0];
+                    mesg.Nickname = new Nickname(Nicknames[0]);
+                }
+            }
+            JabberClient.Send(mesg);
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
+        void SendPrivateMessage(XmppPersonModel person, string text)
+        {
+            Jid jid = person.Jid;
+            if ((jid.Server == "gmail.com") ||
+                (jid.Server == "googlemail.com")) {
+                // don't send to all high prio resources or to specific resources
+                // because gtalk clones any message to all resources anyway
+                SendPrivateMessage(person, jid.Bare, text);
+            } else if (!String.IsNullOrEmpty(jid.Resource)) {
+                SendPrivateMessage(person, jid, text);
+            } else {
+                var resources = person.GetResourcesWithHighestPriority();
+                if (resources.Count == 0) {
+                    // no connected resource, send to bare jid
+                    SendPrivateMessage(person, jid.Bare, text);
+                } else {
+                    foreach (var res in resources) {
+                        Jid j = new Jid(jid);
+                        j.Resource = res.Name;
+                        SendPrivateMessage(person, j, text);
+                    }
+                }
             }
         }
 
@@ -1240,7 +1507,11 @@ namespace Smuxi.Engine
             }
 
             contact.IdentityNameColored = null; // uncache
+            ProcessIdentityNameChanged(contact, oldIdentityNameColored, oldIdentityName);
+        }
 
+        void ProcessIdentityNameChanged(XmppPersonModel contact, TextMessagePartModel oldIdentityNameColored, string oldIdentityName)
+        {
             var builder = CreateMessageBuilder();
             builder.AppendEventPrefix();
             string idstring = "";
@@ -1251,25 +1522,24 @@ namespace Smuxi.Engine
             builder.AppendFormat("{2}{1} is now known as {0}", contact, idstring, oldIdentityNameColored);
 
             if (ContactChat != null) {
-                PersonModel oldp = ContactChat.GetPerson(rosterItem.Jid.Bare);
-                if (oldp == null) {
-                    // doesn't exist, don't need to do anything
-                    return;
+                PersonModel oldp = ContactChat.GetPerson(contact.ID);
+                if (oldp != null) {
+                    Session.UpdatePersonInGroupChat(ContactChat, oldp, contact.ToPersonModel());
+                    Session.AddMessageToChat(ContactChat, new MessageModel(builder.ToMessage()));
                 }
-                Session.UpdatePersonInGroupChat(ContactChat, oldp, contact.ToPersonModel());
-
-                Session.AddMessageToChat(ContactChat, builder.ToMessage());
             }
             
-            var chat = Session.GetChat(rosterItem.Jid.Bare, ChatType.Person, this) as PersonChatModel;
+            var chat = Session.GetChat(contact.ID, ChatType.Person, this) as PersonChatModel;
             if (chat != null) {
-                // TODO: implement update chat
-                var oldp = chat.Person;
-                Session.RemoveChat(chat);
-                chat = Session.CreatePersonChat(oldp, this);
-                Session.AddChat(chat);
-                Session.AddMessageToChat(chat, builder.ToMessage());
-                Session.SyncChat(chat);
+                chat.Name = contact.IdentityName;
+                builder.MessageType = MessageType.ChatNameChanged;
+                var msg = builder.ToMessage();
+                Session.AddMessageToChat(chat, msg);
+
+                chat.Person = contact.ToPersonModel();
+                var msg2 = new MessageModel(msg);
+                msg2.MessageType = MessageType.PersonChatPersonChanged;
+                Session.AddMessageToChat(chat, msg2);
             }
         }
 
@@ -1291,7 +1561,10 @@ namespace Smuxi.Engine
             // prevent duplicate requests
             DiscoCache[hash] = null;
             // request it
-            Disco.DiscoverInformation(jid, OnDiscoInfo, hash);
+            Disco.DiscoverInformation(jid,
+                (object sender, IQEventArgs e) =>
+                    OnDiscoInfo(e, hash)
+            );
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
@@ -1302,45 +1575,51 @@ namespace Smuxi.Engine
                 return;
             }
             XmppResourceModel res;
-            if (!contact.Resources.TryGetValue(jid.Resource, out res)) {
+            if (!contact.Resources.TryGetValue(jid.Resource??"", out res)) {
                 return;
             }
             res.Disco = info;
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
-        void OnDiscoInfo(object sender, IQ iq, object pars)
-        {
-            if (iq.Error != null) {
-                var msg = CreateMessageBuilder();
-                msg.AppendEventPrefix();
-                msg.AppendErrorText(_("An error happened during service discovery for {0}: {1}"),
-                                    iq.From,
-                                    iq.Error.ErrorText ?? iq.Error.Condition.ToString());
-                Session.AddMessageToChat(NetworkChat, msg.ToMessage());
+        void OnDiscoInfo(IQEventArgs e, string hash)
+        {
+            if (e.IQ.Error != null) {
+#if LOG4NET
+                _Logger.DebugFormat("An error happened during service discovery: {0}", e.IQ);
+#endif
                 // clear item from cache so the request is done again some time
-                DiscoCache.Remove(pars as string);
+                DiscoCache.Remove(hash);
+                e.Handled = true;
                 return;
             }
-            if (iq.Type != IqType.result) {
-                throw new ArgumentException("discoinfoiq is not a result");
+            if (e.IQ.Type != IqType.result) {
+#if LOG4NET
+                _Logger.Debug("OnDiscoInfo(): iq is not a result");
+#endif
+                return;
             }
-            if (!(iq.Query is DiscoInfo)) {
-                throw new ArgumentException("discoinfoiq query is not a discoinfo");
+            if (!(e.IQ.Query is DiscoInfo)) {
+#if LOG4NET
+                _Logger.Debug("OnDiscoInfo(): query is not a DiscoInfo");
+#endif
+                return;
             }
-            DiscoCache[pars as string] = iq.Query as DiscoInfo;
-            if (String.IsNullOrEmpty(iq.From.User)) {
+            var info = (DiscoInfo)e.IQ.Query;
+            DiscoCache[hash] = info;
+            e.Handled = true;
+            if (String.IsNullOrEmpty(e.IQ.From.User)) {
                 // server capabilities
                 var builder = CreateMessageBuilder();
                 builder.AppendText("The Server supports the following features: ");
                 Session.AddMessageToChat(NetworkChat, builder.ToMessage());
-                foreach ( var feature in (iq.Query as DiscoInfo).GetFeatures()) {
+                foreach (var feature in info.GetFeatures()) {
                     builder = CreateMessageBuilder();
                     builder.AppendText(feature.Var);
                     Session.AddMessageToChat(NetworkChat, builder.ToMessage());
                 }
             } else {
-                AddCapabilityToResource(iq.From, iq.Query as DiscoInfo);
+                AddCapabilityToResource(e.IQ.From, info);
             }
         }
 
@@ -1360,23 +1639,28 @@ namespace Smuxi.Engine
                     switch(pres.Show) {
                         case ShowType.NONE:
                             builder.AppendFormat(_("{0}{1} is available"), person, idstring);
+                            builder.AppendPresenceState(person, MessageType.PresenceStateOnline);
                             break;
                         case ShowType.away:
                             builder.AppendFormat(_("{0}{1} is away"), person, idstring);
+                            builder.AppendPresenceState(person, MessageType.PresenceStateAway);
                             break;
                         case ShowType.xa:
                             builder.AppendFormat(_("{0}{1} is extended away"), person, idstring);
+                            builder.AppendPresenceState(person, MessageType.PresenceStateAway);
                             break;
                         case ShowType.dnd:
                             builder.AppendFormat(_("{0}{1} wishes not to be disturbed"), person, idstring);
+                            builder.AppendPresenceState(person, MessageType.PresenceStateAway);
                             break;
                         case ShowType.chat:
                             builder.AppendFormat(_("{0}{1} wants to chat"), person, idstring);
+                            builder.AppendPresenceState(person, MessageType.PresenceStateOnline);
                             break;
-                            
                     }
                     break;
                 case PresenceType.unavailable:
+                    builder.AppendPresenceState(person, MessageType.PresenceStateOffline);
                     builder.AppendFormat(_("{0}{1} is offline"), person, idstring);
                     break;
                 case PresenceType.subscribe:
@@ -1533,25 +1817,11 @@ namespace Smuxi.Engine
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
-        void PrintGroupChatPresence(XmppGroupChatModel chat, XmppPersonModel person, Presence pres)
+        void PrintGroupChatPresence(XmppGroupChatModel chat, PersonModel person, Presence pres)
         {
             Jid jid = pres.From;
-            XmppResourceModel resource;
-            if (person.MucResources.TryGetValue(jid.Resource??"", out resource)) {
-                if (resource.Presence.Show == pres.Show
-                    && resource.Presence.Status == pres.Status
-                    && resource.Presence.Last == pres.Last
-                    && resource.Presence.XDelay == pres.XDelay
-                    && resource.Presence.Priority == pres.Priority
-                    && resource.Presence.Nickname == pres.Nickname
-                    && resource.Presence.Type == pres.Type
-                    ) {
-                    // presence didn't change enough to warrent a display message -> abort
-                    return;
-                }
-            }
 
-            var msg = CreatePresenceUpdateMessage(person.Jid, person, pres);
+            var msg = CreatePresenceUpdateMessage(person.ID, person, pres);
             Session.AddMessageToChat(chat, msg);
             // clone directly to muc person chat
             // don't care about real jid, that has its own presence packets
@@ -1565,22 +1835,7 @@ namespace Smuxi.Engine
         void OnGroupChatPresence(XmppGroupChatModel chat, Presence pres)
         {
             Jid jid = pres.From;
-            XmppPersonModel person;
-            // check whether we know the real jid of this muc user
-            if (pres.MucUser != null &&
-                pres.MucUser.Item != null &&
-                pres.MucUser.Item.Jid != null ) {
-                string nick = pres.From.Resource;
-                if (!string.IsNullOrEmpty(pres.MucUser.Item.Nickname)) {
-                    nick = pres.MucUser.Item.Nickname;
-                }
-                person = GetOrCreateContact(pres.MucUser.Item.Jid.Bare, nick);
-            } else {
-                // we do not know the real jid of this user, don't add it to our local roster
-                // BUG? pres.From.Resource can be null?
-                person = new XmppPersonModel(jid, pres.From.Resource, this);
-            }
-            person.GetOrCreateMucResource(jid).Presence = pres;
+            var person = new PersonModel(jid, pres.From.Resource, NetworkID, Protocol, this);
             PrintGroupChatPresence(chat, person, pres);
             switch (pres.Type) {
                 case PresenceType.available:
@@ -1590,45 +1845,68 @@ namespace Smuxi.Engine
                     }
                     // is the chat synced? add the new contact the regular way
                     if (chat.IsSynced) {
-                        Session.AddPersonToGroupChat(chat, person.ToPersonModel());
+                        Session.AddPersonToGroupChat(chat, person);
                         return;
                     }
-                    
-                    chat.UnsafePersons.Add(person.ID, person.ToPersonModel());
-        
+
+                    chat.UnsafePersons.Add(person.ID, person);
+
                     // did I join? then the chat roster is fully received
                     if (pres.From.Resource == chat.OwnNickname) {
+                        chat.IsJoining = false;
                         // HACK: lower probability of sync race condition swallowing messages
                         ThreadPool.QueueUserWorkItem(delegate {
                             Thread.Sleep(1000);
-                            chat.IsSynced = true;
-                            Session.SyncChat(chat);
-                            Session.EnableChat(chat);
+                            lock (this) {
+                                if (IsDisposed) {
+                                    return;
+                                }
+                                chat.IsSynced = true;
+                                Session.SyncChat(chat);
+                                Session.EnableChat(chat);
+                            }
                         });
                     }
                     break;
                 case PresenceType.unavailable:
-                    Session.RemovePersonFromGroupChat(chat, person.ToPersonModel());
+                    Session.RemovePersonFromGroupChat(chat, person);
                     // did I leave? then I "probably" left the room
                     if (pres.From.Resource == chat.OwnNickname) {
                         Session.RemoveChat(chat);
                     }
                     break;
                 case PresenceType.error:
-                    if (pres.Error == null) break;
-                    switch (pres.Error.Type) {
-                        case ErrorType.cancel:
-                            switch (pres.Error.Condition) {
-                                case ErrorCondition.Conflict:
-                                    // nickname already in use
-                                    // autorejoin with _ appended to nickname
-                                    JoinRoom(chat.ID, chat.OwnNickname + "_", chat.Password);
-                                    break;
-                            }
-                            break;
+                    OnGroupChatPresenceError(chat, pres);
+                    break;
+            }
+        }
+
+        void OnGroupChatPresenceError(XmppGroupChatModel chat, Presence pres)
+        {
+            var builder = CreateMessageBuilder();
+            if (pres.Error == null) {
+                builder.AppendErrorText(_("An unknown groupchat error occurred: {0}"), pres);
+                Session.AddMessageToChat(NetworkChat, builder.ToMessage());
+                return;
+            }
+            switch (pres.Error.Type) {
+                case ErrorType.cancel:
+                    switch (pres.Error.Condition) {
+                        case ErrorCondition.Conflict:
+                            // nickname already in use
+                            // autorejoin with _ appended to nickname
+                            JoinRoom(chat.ID, chat.OwnNickname + "_", chat.Password);
+                            return;
                     }
                     break;
             }
+            if (String.IsNullOrEmpty(pres.Error.ErrorText)) {
+                builder.AppendErrorText(_("An unhandled groupchat error occurred: {0}"), pres);
+            } else {
+                builder.AppendErrorText(_("Error in Groupchat {0}: {1}"), chat.ID, pres.Error.ErrorText);
+            }
+            Session.AddMessageToChat(NetworkChat, builder.ToMessage());
+            Session.RemoveChat(chat);
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
@@ -1718,6 +1996,10 @@ namespace Smuxi.Engine
         void OnPrivateChatPresence(Presence pres)
         {
             Jid jid = pres.From;
+            if (jid.Bare == JabberClient.MyJID.Bare) {
+                // don't process any of my own resources
+                return;
+            }
             var person = GetOrCreateContact(jid.Bare, jid);
             PrintPrivateChatPresence(person, pres);
             switch (pres.Type) {
@@ -1776,9 +2058,9 @@ namespace Smuxi.Engine
                 // only test capabilities of users going online or changing something in their online state
                 RequestCapabilities(jid, pres.Capabilities);
             }
-            
+
             var groupChat = (XmppGroupChatModel) Session.GetChat(jid.Bare, ChatType.Group, this);
-            
+
             if (groupChat != null) {
                 OnGroupChatPresence(groupChat, pres);
             } else {
@@ -1816,11 +2098,14 @@ namespace Smuxi.Engine
             } else {
                 groupChat.SeenNewMessages = true;
             }
-            
+
             // mark highlights only for received messages
             bool hilight = person.ID != groupChat.OwnNickname;
             var message = CreateMessage(person, msg, hilight, false);
             Session.AddMessageToChat(groupChat, message);
+            OnMessageReceived(
+                new MessageEventArgs(groupChat, message, msg.From, groupChat.ID)
+            );
         }
 
         void AddMessageToChatIfNotFiltered(MessageModel msg, ChatModel chat, bool isNew)
@@ -1831,9 +2116,26 @@ namespace Smuxi.Engine
             }
             if (isNew) {
                 Session.AddChat(chat);
+            }
+            Session.AddMessageToChat(chat, msg, true);
+            if (isNew) {
                 Session.SyncChat(chat);
             }
-            Session.AddMessageToChat(chat, msg);
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
+        void ProcessNickname(XmppPersonModel person, Nickname nick)
+        {
+            if (String.IsNullOrEmpty(nick.Value)) {
+                return;
+            }
+            // only rename person if it doesn't have a preset name
+            if (person.IdentityName == person.ID) {
+                var oldIdentityNameColored = person.IdentityNameColored;
+                var oldIdentityName = person.IdentityName;
+                person.IdentityName = nick.Value;
+                ProcessIdentityNameChanged(person, oldIdentityNameColored, oldIdentityName);
+            }
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
@@ -1845,7 +2147,14 @@ namespace Smuxi.Engine
                 // in case full jid doesn't have a chat window, use bare jid
                 chat = GetOrCreatePersonChat(msg.From.Bare, out isNew);
             }
-            AddMessageToChatIfNotFiltered(CreateMessage(chat.Person, msg, true, true), chat, isNew);
+            if (msg.Nickname != null) {
+                ProcessNickname(GetOrCreateContact(msg.From, msg.Nickname.Value), msg.Nickname);
+            }
+            var message = CreateMessage(chat.Person, msg, true, true);
+            AddMessageToChatIfNotFiltered(message, chat, isNew);
+            OnMessageReceived(
+                new MessageEventArgs(chat, message, msg.From, null)
+            );
         }
 
         MessageModel CreateMessage(PersonModel person, Message msg, bool mark_hilights, bool force_hilight)
@@ -1999,7 +2308,12 @@ namespace Smuxi.Engine
         [MethodImpl(MethodImplOptions.Synchronized)]
         void OnChatState(Message msg)
         {
-            if (msg.Body != null) return;
+            if (!ShowChatStates) {
+                return;
+            }
+            if (msg.Body != null) {
+                return;
+            }
             switch (msg.Type) {
                 case XmppMessageType.chat:
                 case XmppMessageType.headline:
@@ -2011,12 +2325,34 @@ namespace Smuxi.Engine
                     if (chat == null) {
                         // create chat
                         chat = GetOrCreatePersonChat(msg.From.Bare, out isNew);
+                        if (isNew) {
+                            if (!OpenNewChatOnChatState) {
+                                return;
+                            }
+                            if (msg.Chatstate != Chatstate.composing) {
+                                // there is NO reason to open a new chat window for
+                                // a chatstate other than composing
+                                return;
+                            }
+                            Session.AddChat(chat);
+                        }
                     }
                     var builder = CreateMessageBuilder();
-                    builder.AppendEventPrefix();
-                    builder.AppendFormat(_("{0} changed the chatstate to {1}"),
-                                       chat.Person, msg.Chatstate.ToString());
-                    AddMessageToChatIfNotFiltered(builder.ToMessage(), chat, isNew);
+                    switch (msg.Chatstate) {
+                        case Chatstate.composing:
+                            builder.AppendChatState(chat.Person, MessageType.ChatStateComposing);
+                            break;
+                        case Chatstate.paused:
+                            builder.AppendChatState(chat.Person, MessageType.ChatStatePaused);
+                            break;
+                        default:
+                            builder.AppendChatState(chat.Person, MessageType.ChatStateReset);
+                            break;
+                    }
+                    Session.AddMessageToChat(chat, builder.ToMessage());
+                    if (isNew) {
+                        Session.SyncChat(chat);
+                    }
                 }
                     break;
                 default:
@@ -2036,14 +2372,15 @@ namespace Smuxi.Engine
             Session.AddMessageToChat(NetworkChat, builder.ToMessage());
         }
 
-        void OnIq(object sender, IQ iq)
+        void OnIq(object sender, IQEventArgs e)
         {
-            Trace.Call(sender, iq);
+            Trace.Call(sender, e);
 
             // not as pretty as the previous implementation, but it works
-            var elem = iq.SelectSingleElement("own-message");
+            var elem = e.IQ.SelectSingleElement("own-message");
             if (elem is OwnMessageQuery) {
                 OnIQOwnMessage((OwnMessageQuery) elem);
+                e.Handled = true;
             }
         }
 
@@ -2054,7 +2391,7 @@ namespace Smuxi.Engine
                 // we send this message from Smuxi, nothing to do...
                 return;
             }
-            
+
             if (!SupressLocalMessageEcho && (query.Body == LastSentMessage)) {
                 SupressLocalMessageEcho = true;
                 return;
@@ -2104,28 +2441,65 @@ namespace Smuxi.Engine
         void OnClose(object sender)
         {
             Trace.Call(sender);
-            if (ContactChat != null) {
-                Session.DisableChat(ContactChat);
+
+            foreach (var chat in Chats) {
+                // don't disable the protocol chat, else the user loses all
+                // control for the protocol manager! e.g. after a manual
+                // reconnect or server-side disconnect
+                if (chat.ChatType == ChatType.Protocol) {
+                    continue;
+                }
+
+                Session.DisableChat(chat);
             }
 
-            IsConnected = false;
             OnDisconnected(EventArgs.Empty);
 
+            // reset socket
+            JabberClient.ClientSocket.OnValidateCertificate -= ValidateCertificate;
             JabberClient.SocketConnectionType = SocketConnectionType.Direct;
 
             if (AutoReconnect) {
-                var builder = CreateMessageBuilder();
-                builder.AppendEventPrefix();
-                builder.AppendText(_("Reconnecting to {0} in {1} seconds..."),
-                                   JabberClient.Server, AutoReconnectDelay);
-                Session.AddMessageToChat(Chat, builder.ToMessage());
+                Reconnect(AutoReconnectDelay);
+            }
+        }
 
-                ThreadPool.QueueUserWorkItem(delegate {
-                    // sleep for N seconds, we don't want to be abusive
-                    Thread.Sleep(AutoReconnectDelay * 1000);
-                    Connect();
-                });
+        void Reconnect()
+        {
+            var builder = CreateMessageBuilder();
+            builder.AppendEventPrefix();
+            builder.AppendText(_("Reconnecting to {0}"),
+                               JabberClient.Server);
+            Session.AddMessageToChat(Chat, builder.ToMessage());
+            Connect();
+        }
+
+        void Reconnect(TimeSpan span)
+        {
+            int delay = (int)span.TotalMilliseconds;
+            if (delay <= 0) {
+                Reconnect();
             }
+            var builder = CreateMessageBuilder();
+            builder.AppendEventPrefix();
+            builder.AppendText(_("Reconnecting to {0} in {1} seconds"),
+                               JabberClient.Server, span.TotalSeconds);
+            Session.AddMessageToChat(Chat, builder.ToMessage());
+            ThreadPool.QueueUserWorkItem(delegate {
+                Thread.Sleep(delay);
+                lock (this) {
+                    // prevent this timer from calling connect after it has been closed
+                    if (IsDisposed) {
+                        return;
+                    }
+                    // prevent this timer from calling connect if during the timout
+                    // some other event already began a connect
+                    if (JabberClient.XmppConnectionState != XmppConnectionState.Disconnected) {
+                        return;
+                    }
+                    Connect();
+                }
+            });
         }
 
         void OnError(object sender, Exception ex)
@@ -2148,17 +2522,22 @@ namespace Smuxi.Engine
         {
             Trace.Call(sender);
 
-            IsConnected = true;
-
             var builder = CreateMessageBuilder();
             builder.AppendEventPrefix();
             builder.AppendText(_("Authenticated"));
             Session.AddMessageToChat(Chat, builder.ToMessage());
-            if (JabberClient.ServerCapabilities != null) {
-                RequestCapabilities(JabberClient.MyJID.Server, JabberClient.ServerCapabilities.Version);
-            }
+            RequestCapabilities(JabberClient.Server, JabberClient.Server);
 
             OnConnected(EventArgs.Empty);
+            foreach (var chat in Chats) {
+                if (chat is PersonChatModel) {
+                    Session.EnableChat(chat);
+                    Session.SyncChat(chat);
+                } else if (chat is XmppGroupChatModel) {
+                    var muc = (XmppGroupChatModel)chat;
+                    JoinRoom(muc.ID, muc.OwnNickname, muc.Password);
+                }
+            }
         }
 
         [MethodImpl(MethodImplOptions.Synchronized)]
@@ -2232,11 +2611,8 @@ namespace Smuxi.Engine
             }
 
             Me = new PersonModel(
-                String.Format("{0}@{1}",
-                    JabberClient.Username,
-                    JabberClient.Server
-                ),
-                JabberClient.Username,
+                JabberClient.MyJID.Bare,
+                Nicknames[0],
                 NetworkID, Protocol, this
             );
             Me.IdentityNameColored.ForegroundColor = new TextColor(0, 0, 255);
@@ -2245,8 +2621,20 @@ namespace Smuxi.Engine
 
             // XMPP specific settings
             JabberClient.Resource = server.Resource;
-            
-            JabberClient.UseStartTLS = server.UseEncryption;
+
+            if (server.UseEncryption) {
+                // HACK: Google Talk doesn't support StartTLS :(
+                if (server.Hostname == "talk.google.com" &&
+                    server.Port == 5223) {
+                    JabberClient.ForceStartTls = false;
+                    JabberClient.UseSSL = true;
+                } else {
+                    JabberClient.ForceStartTls = true;
+                }
+            } else {
+                JabberClient.ForceStartTls = false;
+                JabberClient.UseStartTLS = true;
+            }
             if (!server.ValidateServerCertificate) {
                 JabberClient.ClientSocket.OnValidateCertificate += ValidateCertificate;
             }
@@ -2262,7 +2650,7 @@ namespace Smuxi.Engine
 
         static string _(string msg)
         {
-            return Mono.Unix.Catalog.GetString(msg);
+            return LibraryCatalog.GetString(msg, LibraryTextDomain);
         }
     }
 }
diff --git a/src/Engine/Chats/ChatModel.cs b/src/Engine/Chats/ChatModel.cs
index 1f25774..3ecbebe 100644
--- a/src/Engine/Chats/ChatModel.cs
+++ b/src/Engine/Chats/ChatModel.cs
@@ -58,6 +58,9 @@ namespace Smuxi.Engine
             get {
                 return _Name;
             }
+            set {
+                _Name = value;
+            }
         }
         
         public ChatType ChatType {
@@ -206,7 +209,9 @@ namespace Smuxi.Engine
 
         public void Close()
         {
-            MessageBuffer.Dispose();
+            if (MessageBuffer != null) {
+                MessageBuffer.Dispose();
+            }
         }
 
         private string GetLogFile()
diff --git a/src/Engine/Chats/PersonChatModel.cs b/src/Engine/Chats/PersonChatModel.cs
index 0342870..f0d4df1 100644
--- a/src/Engine/Chats/PersonChatModel.cs
+++ b/src/Engine/Chats/PersonChatModel.cs
@@ -42,6 +42,9 @@ namespace Smuxi.Engine
             get {
                 return _Person;
             }
+            set {
+                _Person = value;
+            }
         }
         
         public PersonChatModel(PersonModel person, string id, string name, IProtocolManager networkManager) :
diff --git a/src/Engine/CommandModel.cs b/src/Engine/CommandModel.cs
index 1bfae88..6167be7 100644
--- a/src/Engine/CommandModel.cs
+++ b/src/Engine/CommandModel.cs
@@ -30,6 +30,7 @@ using System;
 using System.Collections.Generic;
 using System.Runtime.Serialization;
 using Smuxi.Common;
+using System.Text.RegularExpressions;
 
 namespace Smuxi.Engine
 {
@@ -101,21 +102,15 @@ namespace Smuxi.Engine
             Trace.Call(fm, chat == null ? "(null)" : chat.GetType().ToString(), cmdChar, data);
             
             _Data = data;
-            _DataArray = data.Split(new char[] {' '});
-            _Parameter = String.Join(" ", _DataArray, 1, _DataArray.Length - 1);
             _CommandCharacter = cmdChar;
-            if (data.StartsWith(cmdChar) &&
-                !data.StartsWith(cmdChar + cmdChar)) {
-                _IsCommand = true;
-                _Command = (_DataArray[0].Length > cmdChar.Length) ?
-                                _DataArray[0].Substring(cmdChar.Length).ToLower() :
-                                String.Empty;
-            } else if (data.StartsWith(cmdChar + cmdChar)) {
-                _Data = data.Substring(cmdChar.Length);
-                _DataArray[0] = _DataArray[0].Substring(cmdChar.Length);
-            }
             _FrontendManager = fm;
             _Chat = chat;
+
+            try {
+                EnhancedParse(data);
+            } catch (FormatException) {
+                SimpleParse(data);
+            }
         }
         
         public CommandModel(FrontendManager fm, ChatModel chat, string parameter) :
@@ -171,5 +166,55 @@ namespace Smuxi.Engine
         {
             return _Data;
         }
+
+        void EnhancedParse(string data)
+        {
+            string regex = Regex.Escape(_CommandCharacter);
+            regex += "(?<command>[a-z]+)"; // commands can only contain english keyboard letters
+            string quoted_parameter = @"""(?<parameters>[^""]*)""";
+            string normal_parameter = @"(?<parameters>[^ ]+)";
+            string parameters = @"( +(" + quoted_parameter + "|" + normal_parameter + "))*";
+            regex += parameters + " *"; // may end with spaces
+            regex = "^" + regex + "$"; // parse full string
+            var match = Regex.Match(data, regex, RegexOptions.IgnoreCase);
+
+            if (data.Contains(" ")) {
+                _Parameter = data.Substring(data.IndexOf(' ') + 1);
+            } else {
+                _Parameter = "";
+            }
+            if (match.Success) {
+                _IsCommand = true;
+                _Command = match.Groups["command"].Value;
+                var list = new List<string>();
+                list.Add(_CommandCharacter + _Command);
+                foreach (Capture cap in match.Groups["parameters"].Captures) {
+                    list.Add(cap.Value);
+                }
+                _DataArray = list.ToArray();
+            } else {
+                if (data.StartsWith(_CommandCharacter + _CommandCharacter)) {
+                    _Data = data.Substring(_CommandCharacter.Length);
+                } else if (data.StartsWith(_CommandCharacter)) {
+                    throw new FormatException("command could not be parsed by command regex, regex must be broken");
+                }
+                _DataArray = new string[1];
+                _DataArray[0] = _Data;
+            }
+        }
+
+        void SimpleParse(string data)
+        {
+            _DataArray = data.Split(new char[] {' '});
+            _Parameter = String.Join(" ", _DataArray, 1, _DataArray.Length - 1);
+            if (data.StartsWith(_CommandCharacter) &&
+                !data.StartsWith(_CommandCharacter + _CommandCharacter)) {
+                _Command = (_DataArray [0].Length > _CommandCharacter.Length) ?
+                    _DataArray [0].Substring(_CommandCharacter.Length).ToLower() : String.Empty;
+            } else if (data.StartsWith(_CommandCharacter + _CommandCharacter)) {
+                _Data = data.Substring(_CommandCharacter.Length);
+                _DataArray [0] = _DataArray [0].Substring(_CommandCharacter.Length);
+            }
+        }
     }
 }
diff --git a/src/Engine/Engine.cs b/src/Engine/Engine.cs
index be3a213..e9a62f7 100644
--- a/src/Engine/Engine.cs
+++ b/src/Engine/Engine.cs
@@ -117,5 +117,11 @@ namespace Smuxi.Engine
             
             _SessionManager = new SessionManager(_Config, _ProtocolManagerFactory);
         }
+
+        public static void Shutdown()
+        {
+            SessionManager.Shutdown();
+            Environment.Exit(0);
+        }
     }
 }
diff --git a/src/Engine/FrontendManager.cs b/src/Engine/FrontendManager.cs
index e5e1d83..fbfc894 100644
--- a/src/Engine/FrontendManager.cs
+++ b/src/Engine/FrontendManager.cs
@@ -164,8 +164,8 @@ namespace Smuxi.Engine
             }
 
             // sync current network manager (if any exists)
-            if (_Session.ProtocolManagers.Count > 0) {
-                IProtocolManager nm = _Session.ProtocolManagers[0];
+            IProtocolManager nm = _Session.FirstProtocolManager;
+            if (nm != null) {
                 CurrentProtocolManager = nm;
             }
 
@@ -206,22 +206,7 @@ namespace Smuxi.Engine
         public void NextProtocolManager()
         {
             Trace.Call();
-            
-            if (_Session.ProtocolManagers.Count == 0) {
-                CurrentProtocolManager = null;
-            } else {
-                int pos = 0;
-                if (CurrentProtocolManager != null) {
-                    pos = _Session.ProtocolManagers.IndexOf(CurrentProtocolManager);
-                }
-                if (pos < _Session.ProtocolManagers.Count - 1) {
-                    pos++;
-                } else {
-                    pos = 0;
-                }
-                CurrentProtocolManager = _Session.ProtocolManagers[pos];
-            }
-            
+            CurrentProtocolManager = _Session.NextProtocolManager(CurrentProtocolManager);
             UpdateNetworkStatus();
         }
         
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine/Hooks/Commands/HookCommand.cs
similarity index 65%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to src/Engine/Hooks/Commands/HookCommand.cs
index a68e741..d3e5dce 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine/Hooks/Commands/HookCommand.cs
@@ -1,37 +1,34 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
 
 namespace Smuxi.Engine
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public abstract class HookCommand
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
+        public string CommandName { get; protected set; }
 
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        protected HookCommand()
         {
         }
+
+        public abstract void Run(string commandLine);
     }
 }
diff --git a/src/Engine/Hooks/Commands/ProtocolManagerHookCommand.cs b/src/Engine/Hooks/Commands/ProtocolManagerHookCommand.cs
new file mode 100644
index 0000000..c4f0298
--- /dev/null
+++ b/src/Engine/Hooks/Commands/ProtocolManagerHookCommand.cs
@@ -0,0 +1,50 @@
+// Smuxi - Smart MUltipleXed Irc
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
+// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+using System;
+
+namespace Smuxi.Engine
+{
+    public class ProtocolManagerHookCommand : HookCommand
+    {
+        IProtocolManager ProtocolManager { get; set; }
+        ChatModel Chat { get; set; }
+        string CommandCharacter { get; set; }
+
+        public ProtocolManagerHookCommand(IProtocolManager protocolManager,
+                                          ChatModel chat,
+                                          string commandCharacter)
+        {
+            if (protocolManager == null) {
+                throw new ArgumentNullException("protocolManager");
+            }
+
+            ProtocolManager = protocolManager;
+            Chat = chat;
+            CommandCharacter = commandCharacter;
+            CommandName = "ProtocolManager.Command";
+        }
+
+        public override void Run(string commandLine)
+        {
+            var cmd = new CommandModel(null, Chat, CommandCharacter, commandLine);
+            ProtocolManager.Command(cmd);
+        }
+    }
+}
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine/Hooks/Commands/SessionHookCommand.cs
similarity index 50%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to src/Engine/Hooks/Commands/SessionHookCommand.cs
index a68e741..e848734 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine/Hooks/Commands/SessionHookCommand.cs
@@ -1,37 +1,50 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
 
 namespace Smuxi.Engine
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public class SessionHookCommand : HookCommand
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
+        Session Session { get; set; }
+        ChatModel Chat { get; set; }
+        string CommandCharacter { get; set; }
+
+        public SessionHookCommand(Session session,
+                                  ChatModel chat,
+                                  string commandCharacter)
+        {
+            if (session == null) {
+                throw new ArgumentNullException("session");
+            }
+
+            Session = session;
+            Chat = chat;
+            CommandCharacter = commandCharacter;
+            CommandName = "Session.Command";
+        }
 
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        public override void Run(string commandLine)
         {
+            var cmd = new CommandModel(null, Chat, CommandCharacter, commandLine);
+            Session.Command(cmd);
         }
     }
 }
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine/Hooks/Environments/ChatHookEnvironment.cs
similarity index 65%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to src/Engine/Hooks/Environments/ChatHookEnvironment.cs
index a68e741..4630785 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine/Hooks/Environments/ChatHookEnvironment.cs
@@ -1,37 +1,38 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
 
 namespace Smuxi.Engine
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public class ChatHookEnvironment : HookEnvironment
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
-
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        public ChatHookEnvironment(ChatModel chat)
         {
+            if (chat == null) {
+                throw new ArgumentNullException("chat");
+            }
+
+            this["CHAT_ID"] = chat.ID;
+            this["CHAT_NAME"] = chat.Name;
+            this["CHAT_TYPE"] = chat.ChatType.ToString();
         }
     }
 }
+
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine/Hooks/Environments/CommandHookEnvironment.cs
similarity index 65%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to src/Engine/Hooks/Environments/CommandHookEnvironment.cs
index a68e741..963bac0 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine/Hooks/Environments/CommandHookEnvironment.cs
@@ -1,37 +1,36 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
 
 namespace Smuxi.Engine
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public class CommandHookEnvironment : HookEnvironment
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
-
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        public CommandHookEnvironment(CommandModel cmd)
         {
+            if (cmd == null) {
+                throw new ArgumentNullException("cmd");
+            }
+
+            this["CMD"] = cmd.Command;
+            this["CMD_PARAMETER"] = cmd.Parameter;
         }
     }
 }
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine/Hooks/Environments/HookEnvironment.cs
similarity index 65%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to src/Engine/Hooks/Environments/HookEnvironment.cs
index a68e741..9524b5b 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine/Hooks/Environments/HookEnvironment.cs
@@ -1,36 +1,30 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
+using System.Collections.Generic;
 
 namespace Smuxi.Engine
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public class HookEnvironment : Dictionary<string, string>
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
-
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        public HookEnvironment()
         {
         }
     }
diff --git a/src/Engine/Hooks/Environments/MessageHookEnvironment.cs b/src/Engine/Hooks/Environments/MessageHookEnvironment.cs
new file mode 100644
index 0000000..a5fa92b
--- /dev/null
+++ b/src/Engine/Hooks/Environments/MessageHookEnvironment.cs
@@ -0,0 +1,58 @@
+// Smuxi - Smart MUltipleXed Irc
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
+// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+using System;
+
+namespace Smuxi.Engine
+{
+    public class MessageHookEnvironment : HookEnvironment
+    {
+        static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0);
+
+        public MessageHookEnvironment(MessageModel msg, string sender, string receiver)
+        {
+            if (msg == null) {
+                throw new ArgumentNullException("msg");
+            }
+            if (sender == null) {
+                throw new ArgumentNullException("sender");
+            }
+            if (receiver == null) {
+                throw new ArgumentNullException("receiver");
+            }
+
+            var nick = msg.GetNick();
+            var message = msg.ToString();
+            if (String.IsNullOrEmpty(nick)) {
+                this["MSG"] = message;
+            } else {
+                this["MSG"] = message.Substring(nick.Length + 3);
+            }
+            this["MSG_TYPE"] = msg.MessageType.ToString();
+
+            var timestamp = (Int64) (msg .TimeStamp - UnixEpoch).TotalSeconds;
+            this["MSG_TIMESTAMP_UNIX"] = timestamp.ToString();
+            this["MSG_TIMESTAMP_ISO_UTC"] = msg.TimeStamp.ToString("u").Replace('Z', ' ').TrimEnd();
+            this["MSG_TIMESTAMP_ISO_LOCAL"] = msg.TimeStamp.ToLocalTime().ToString("u").Replace('Z', ' ').TrimEnd();
+
+            this["SENDER"] = sender;
+            this["RECEIVER"] = receiver;
+        }
+    }
+}
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs b/src/Engine/Hooks/Environments/ProtocolManagerHookEnvironment.cs
similarity index 53%
copy from src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
copy to src/Engine/Hooks/Environments/ProtocolManagerHookEnvironment.cs
index a68e741..bf545bf 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppGroupChatModel.cs
+++ b/src/Engine/Hooks/Environments/ProtocolManagerHookEnvironment.cs
@@ -1,37 +1,42 @@
 // Smuxi - Smart MUltipleXed Irc
-// 
-// Copyright (c) 2011 tuukka
-// 
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
-// 
+//
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-// 
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
 using System;
 
 namespace Smuxi.Engine
 {
-    public class XmppGroupChatModel : GroupChatModel
+    public class ProtocolManagerHookEnvironment : HookEnvironment
     {
-        internal DateTime LatestSeenStamp { get; set; }
-        internal bool SeenNewMessages { get; set; }
-        internal string OwnNickname { get; set; }
-        internal string Password { get; set; }
-
-        public XmppGroupChatModel(string id, string name, IProtocolManager networkManager) :
-                         base(id, name, networkManager)
+        public ProtocolManagerHookEnvironment(IProtocolManager protocolManager)
         {
+            if (protocolManager == null) {
+                throw new ArgumentNullException("protocolManager");
+            }
+
+            this["PROTOCOL_MANAGER_PROTOCOL"] = protocolManager.Protocol;
+            this["PROTOCOL_MANAGER_NETWORK"] = protocolManager.NetworkID;
+            this["PROTOCOL_MANAGER_HOST"] = protocolManager.Host;
+            this["PROTOCOL_MANAGER_PORT"] = protocolManager.Port.ToString();
+            if (protocolManager.Me != null) {
+                this["PROTOCOL_MANAGER_ME_ID"] = protocolManager.Me.ID;
+            }
         }
     }
 }
+
diff --git a/src/Engine/Hooks/HookRunner.cs b/src/Engine/Hooks/HookRunner.cs
new file mode 100644
index 0000000..9a3e283
--- /dev/null
+++ b/src/Engine/Hooks/HookRunner.cs
@@ -0,0 +1,180 @@
+// Smuxi - Smart MUltipleXed Irc
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
+// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+using System;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Collections.Generic;
+using SysDiag = System.Diagnostics;
+
+namespace Smuxi.Engine
+{
+    public class HookRunner
+    {
+#if LOG4NET
+        static readonly log4net.ILog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+#endif
+        public Dictionary<string, string> EnvironmentVariables { get; private set; }
+        public List<HookEnvironment> Environments { get; private set; }
+        public List<HookCommand> Commands { get; set; }
+        public List<string> Arguments { get; set; }
+        List<string> Hooks { get; set; }
+        string[] PathElements { get; set; }
+        string StateBasePath { get; set; }
+
+        public bool HasHooks {
+            get {
+                return Hooks.Count > 0;
+            }
+        }
+
+        public HookRunner(params string[] path)
+        {
+            if (path == null) {
+                throw new ArgumentNullException("path");
+            }
+
+            PathElements = path;
+            EnvironmentVariables = new Dictionary<string, string>();
+            Hooks = new List<string>();
+            Environments = new List<HookEnvironment>();
+            Commands = new List<HookCommand>();
+        }
+
+        public void Init()
+        {
+            var appData = Environment.GetFolderPath(
+                Environment.SpecialFolder.LocalApplicationData
+            );
+            StateBasePath = Path.Combine(appData, "smuxi");
+            StateBasePath = Path.Combine(StateBasePath, "hook-state");
+            foreach (var path in PathElements) {
+                StateBasePath = Path.Combine(StateBasePath, path);
+            }
+
+            var hookPath = Path.Combine(appData, "smuxi");
+            hookPath = Path.Combine(hookPath, "hooks");
+            foreach (var path in PathElements) {
+                hookPath = Path.Combine(hookPath, path);
+            }
+            if (!Directory.Exists(hookPath)) {
+                return;
+            }
+            foreach (var file in Directory.GetFiles(hookPath).OrderBy(x => x)) {
+                try {
+                    File.OpenRead(file).Close();
+                } catch (Exception ex) {
+#if LOG4NET
+                    Logger.Error("Init(): error opening " + file, ex);
+#endif
+                    continue;
+                }
+                Hooks.Add(file);
+            }
+
+
+            if (!HasHooks) {
+                return;
+            }
+
+            var env = EnvironmentVariables;
+            if (Engine.Version != null) {
+                env.Add("ENGINE_VERSION", Engine.Version.ToString());
+            }
+
+            foreach (var environment in Environments) {
+                foreach (var entry in environment) {
+                    env.Add(entry.Key, entry.Value);
+                }
+            }
+        }
+
+        public void Run()
+        {
+            if (!HasHooks) {
+                return;
+            }
+
+            foreach (var hook in Hooks) {
+                RunHook(hook);
+            }
+        }
+
+        void RunHook(string hookPath)
+        {
+            var hookFilename = Path.GetFileName(hookPath);
+            var statePath = Path.Combine(StateBasePath, hookFilename);
+            if (!Directory.Exists(statePath)) {
+                Directory.CreateDirectory(statePath);
+            }
+
+            string hookArgs = null;
+            if (Arguments != null && Arguments.Count > 0) {
+                var args = new StringBuilder(256);
+                foreach (var arg in Arguments) {
+                    // quote because of potential spaces and retarded Process API
+                    args.AppendFormat(@"""{0}"" ", arg);
+                }
+                // remove trailing space
+                args.Length--;
+                hookArgs = args.ToString();
+            }
+            var startInfo = new SysDiag.ProcessStartInfo() {
+                FileName = hookPath,
+                Arguments = hookArgs,
+                WorkingDirectory = statePath,
+                UseShellExecute = false,
+                RedirectStandardOutput = true
+            };
+            // HACK: retarded API doesn't allow us to set the dictionary,
+            // thus we have to copy all key/values into it
+            var startEnv = startInfo.EnvironmentVariables;
+            foreach (var entry in EnvironmentVariables) {
+                startEnv.Add(String.Concat("SMUXI_", entry.Key), entry.Value);
+            }
+#if LOG4NET
+            Logger.Debug("Run(): executing " + hookPath);
+#endif
+            var process = SysDiag.Process.Start(startInfo);
+            while (!process.HasExited) {
+                var line = process.StandardOutput.ReadLine();
+                if (String.IsNullOrEmpty(line)) {
+                    continue;
+                }
+                try {
+                    // find matching hook command
+                    foreach (var cmd in Commands) {
+                        if (!line.StartsWith(cmd.CommandName + " ")) {
+                            continue;
+                        }
+                        var cmdLine = line.Substring(cmd.CommandName.Length + 1);
+                        cmd.Run(cmdLine);
+                        break;
+                    }
+                } catch (Exception ex) {
+#if LOG4NET
+                    Logger.Error("Run(): error processing " + line, ex);
+#endif
+                }
+            }
+            process.WaitForExit();
+        }
+    }
+}
diff --git a/src/Engine/Makefile.am b/src/Engine/Makefile.am
index 20a953a..6f5c494 100644
--- a/src/Engine/Makefile.am
+++ b/src/Engine/Makefile.am
@@ -62,8 +62,6 @@ FILES = \
 	TextColorContrast.cs \
 	TextColorPalettes.cs \
 	TextColorTools.cs \
-	UICommand.cs \
-	UICommandContainer.cs \
 	MessageBuffers/Db4oMessageBuffer.cs \
 	MessageBuffers/IMessageBuffer.cs \
 	MessageBuffers/ListMessageBuffer.cs \
@@ -102,7 +100,16 @@ FILES = \
 	Protocols/ProtocolManagerInfoAttribute.cs \
 	Protocols/IProtocolManager.cs \
 	Persons/PersonModel.cs \
-	Persons/ContactModel.cs
+	Persons/ContactModel.cs \
+	Hooks/HookRunner.cs \
+	Hooks/Commands/HookCommand.cs \
+	Hooks/Commands/ProtocolManagerHookCommand.cs \
+	Hooks/Commands/SessionHookCommand.cs \
+	Hooks/Environments/ChatHookEnvironment.cs \
+	Hooks/Environments/CommandHookEnvironment.cs \
+	Hooks/Environments/HookEnvironment.cs \
+	Hooks/Environments/MessageHookEnvironment.cs \
+	Hooks/Environments/ProtocolManagerHookEnvironment.cs
 
 DATA_FILES = 
 
diff --git a/src/Engine/Makefile.in b/src/Engine/Makefile.in
index 34df3a3..90cf218 100644
--- a/src/Engine/Makefile.in
+++ b/src/Engine/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -203,6 +203,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -421,8 +422,6 @@ FILES = \
 	TextColorContrast.cs \
 	TextColorPalettes.cs \
 	TextColorTools.cs \
-	UICommand.cs \
-	UICommandContainer.cs \
 	MessageBuffers/Db4oMessageBuffer.cs \
 	MessageBuffers/IMessageBuffer.cs \
 	MessageBuffers/ListMessageBuffer.cs \
@@ -461,7 +460,16 @@ FILES = \
 	Protocols/ProtocolManagerInfoAttribute.cs \
 	Protocols/IProtocolManager.cs \
 	Persons/PersonModel.cs \
-	Persons/ContactModel.cs
+	Persons/ContactModel.cs \
+	Hooks/HookRunner.cs \
+	Hooks/Commands/HookCommand.cs \
+	Hooks/Commands/ProtocolManagerHookCommand.cs \
+	Hooks/Commands/SessionHookCommand.cs \
+	Hooks/Environments/ChatHookEnvironment.cs \
+	Hooks/Environments/CommandHookEnvironment.cs \
+	Hooks/Environments/HookEnvironment.cs \
+	Hooks/Environments/MessageHookEnvironment.cs \
+	Hooks/Environments/ProtocolManagerHookEnvironment.cs
 
 DATA_FILES = 
 RESOURCES = 
diff --git a/src/Engine/Messages/FeedMessageBuilder.cs b/src/Engine/Messages/FeedMessageBuilder.cs
index 8183eac..63bb4e1 100644
--- a/src/Engine/Messages/FeedMessageBuilder.cs
+++ b/src/Engine/Messages/FeedMessageBuilder.cs
@@ -47,21 +47,7 @@ namespace Smuxi.Engine
 
         string HtmlToText(string html)
         {
-            if (html.Contains("\n")) {
-                var normalized = new StringBuilder(html.Length);
-                html = html.Replace("\r\n", "\n");
-                foreach (var htmlPart in html.Split('\n')) {
-                    var trimmed = htmlPart.TrimEnd(' ');
-                    if (trimmed.Length == 0) {
-                        // skip empty lines
-                        continue;
-                    }
-                    normalized.AppendFormat("{0} ", trimmed);
-                }
-                // remove trailing space
-                normalized.Length--;
-                html = normalized.ToString();
-            }
+            html = NormalizeNewlines(html);
             // strip all HTML tags
             var text = Regex.Replace(html, "<[^>]+>", String.Empty);
             // strip leading and trailing whitespace
diff --git a/src/Engine/Messages/MessageBuilder.cs b/src/Engine/Messages/MessageBuilder.cs
index 6653edc..cc15d60 100644
--- a/src/Engine/Messages/MessageBuilder.cs
+++ b/src/Engine/Messages/MessageBuilder.cs
@@ -1,6 +1,6 @@
 // Smuxi - Smart MUltipleXed Irc
 // 
-// Copyright (c) 2010-2012 Mirco Bauer <meebey at meebey.net>
+// Copyright (c) 2010-2013 Mirco Bauer <meebey at meebey.net>
 // Copyright (c) 2013 Oliver Schneider <mail at oli-obk.de>
 // 
 // Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
@@ -26,6 +26,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Xml;
 using System.Web;
+using Smuxi.Common;
 
 namespace Smuxi.Engine
 {
@@ -34,6 +35,7 @@ namespace Smuxi.Engine
 #if LOG4NET
         private static readonly log4net.ILog f_Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 #endif
+        static readonly string LibraryTextDomain = "smuxi-engine";
         MessageModel Message { get; set; }
         public bool NickColors { get; set; }
         public bool StripFormattings { get; set; }
@@ -614,7 +616,14 @@ namespace Smuxi.Engine
             }
             if (node.HasChildNodes) {
                 foreach (XmlNode child in node.ChildNodes) {
-                    ParseHtml(child, submodel);
+                    // clone this model
+                    TextMessagePartModel nextmodel;
+                    if (submodel is UrlMessagePartModel) {
+                        nextmodel = new UrlMessagePartModel(submodel);
+                    } else {
+                        nextmodel = new TextMessagePartModel(submodel);
+                    }
+                    ParseHtml(child, nextmodel);
                 }
             } else {
                 // final node
@@ -623,8 +632,7 @@ namespace Smuxi.Engine
                 } else if (nodetype == "img") {
                     AppendUrl(node.Attributes.GetNamedItem("src").Value, "[image placeholder - UNIMPLEMENTED]");
                 } else {
-                    model.Text = node.Value.Replace("\r", "").Replace("\n", "");
-                    model.Text = HttpUtility.HtmlDecode(model.Text);
+                    model.Text = HttpUtility.HtmlDecode(node.Value);
                     AppendText(model);
                 }
             }
@@ -632,6 +640,7 @@ namespace Smuxi.Engine
 
         public virtual MessageBuilder AppendHtmlMessage(string html)
         {
+            html = NormalizeNewlines(html);
             XmlDocument doc = new XmlDocument();
             try {
                 // wrap in div to prevent messages beginning with text from failing "to be xml"
@@ -763,5 +772,87 @@ namespace Smuxi.Engine
             }
             return this;
         }
+
+        public virtual MessageBuilder AppendChatState(ContactModel contact, MessageType state)
+        {
+            switch (state) {
+                case MessageType.ChatStateComposing:
+                    if (Message.IsEmpty) {
+                        AppendActionPrefix();
+                        AppendFormat(_("{0} is typing..."), contact);
+                    }
+                    break;
+                case MessageType.ChatStatePaused:
+                    if (Message.IsEmpty) {
+                        AppendActionPrefix();
+                        AppendFormat(_("{0} has stopped typing..."), contact);
+                    }
+                    break;
+                case MessageType.ChatStateReset:
+                    break;
+                default:
+                    throw new ArgumentException("state is not a ChatState", "state");
+            }
+            MessageType = state;
+            return this;
+        }
+
+        protected static string NormalizeNewlines(string text)
+        {
+            if (text == null) {
+                throw new ArgumentNullException("text");
+            }
+            if (!text.Contains("\n")) {
+                // nothing to normalize
+                return text;
+            }
+
+            var normalized = new StringBuilder(text.Length);
+            text = text.Replace("\r\n", "\n");
+            foreach (var textPart in text.Split('\n')) {
+                var trimmed = textPart.TrimEnd(' ');
+                if (trimmed.Length == 0) {
+                    // skip empty lines
+                    continue;
+                }
+                normalized.AppendFormat("{0} ", trimmed);
+            }
+            // remove trailing space
+            normalized.Length--;
+            return normalized.ToString();
+        }
+
+        public virtual MessageBuilder AppendPresenceState(ContactModel contact, MessageType state)
+        {
+            switch (state) {
+                case MessageType.PresenceStateAway:
+                    if (Message.IsEmpty) {
+                        AppendActionPrefix();
+                        AppendFormat(_("{0} is away"), contact);
+                    }
+                    break;
+                case MessageType.PresenceStateOffline:
+                    if (Message.IsEmpty) {
+                        AppendActionPrefix();
+                        AppendFormat(_("{0} is offline"), contact);
+                    }
+                    break;
+                case MessageType.PresenceStateOnline:
+                    if (Message.IsEmpty) {
+                        AppendActionPrefix();
+                        AppendFormat(_("{0} is online"), contact);
+                    }
+                    break;
+                default:
+                    throw new ArgumentException("state is not a PresenceState", "state");
+            }
+            MessageType = state;
+            return this;
+        }
+
+        static string _(string msg)
+        {
+            return LibraryCatalog.GetString(msg, LibraryTextDomain);
+        }
     }
 }
diff --git a/src/Engine/Messages/MessageType.cs b/src/Engine/Messages/MessageType.cs
index e389669..41ad96e 100644
--- a/src/Engine/Messages/MessageType.cs
+++ b/src/Engine/Messages/MessageType.cs
@@ -33,6 +33,14 @@ namespace Smuxi.Engine
     public enum MessageType
     {
         Normal,
-        Event
+        Event,
+        ChatStateComposing,
+        ChatStatePaused,
+        ChatStateReset,
+        PresenceStateOffline,
+        PresenceStateAway,
+        PresenceStateOnline,
+        ChatNameChanged,
+        PersonChatPersonChanged
     }
 }
diff --git a/src/Engine/Protocols/IProtocolManager.cs b/src/Engine/Protocols/IProtocolManager.cs
index 9596c6d..35ff6c9 100644
--- a/src/Engine/Protocols/IProtocolManager.cs
+++ b/src/Engine/Protocols/IProtocolManager.cs
@@ -1,13 +1,7 @@
 /*
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- *
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2005-2006 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2005-2008, 2010, 2011, 2013 Mirco Bauer <meebey at meebey.net>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -56,7 +50,11 @@ namespace Smuxi.Engine
         bool IsConnected {
             get;
         }
-        
+
+        PersonModel Me {
+            get;
+        }
+
         ChatModel Chat {
             get;
         }
diff --git a/src/Engine/Protocols/ProtocolManagerBase.cs b/src/Engine/Protocols/ProtocolManagerBase.cs
index 22474f1..f25f811 100644
--- a/src/Engine/Protocols/ProtocolManagerBase.cs
+++ b/src/Engine/Protocols/ProtocolManagerBase.cs
@@ -1,7 +1,7 @@
 /*
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2007-2011 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2007-2013 Mirco Bauer <meebey at meebey.net>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -21,6 +21,8 @@
  */
 
 using System;
+using System.IO;
+using SysDiag = System.Diagnostics;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Collections.Generic;
@@ -44,7 +46,9 @@ namespace Smuxi.Engine
 
         public event EventHandler Connected;
         public event EventHandler Disconnected;
-        
+        public event EventHandler<MessageEventArgs> MessageSent;
+        public event EventHandler<MessageEventArgs> MessageReceived;
+
         public virtual string Host {
             get {
                 return _Host;
@@ -164,7 +168,7 @@ namespace Smuxi.Engine
             var msg = CreateMessageBuilder();
             msg.AppendEventPrefix();
             msg.AppendText(_("Not connected to server"));
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg.ToMessage());
+            Session.AddMessageToFrontend(cmd, msg.ToMessage());
         }
 
         protected void NotEnoughParameters(CommandModel cmd)
@@ -173,9 +177,9 @@ namespace Smuxi.Engine
             msg.AppendEventPrefix();
             msg.AppendText(_("Not enough parameters for {0} command"),
                            cmd.Command);
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg.ToMessage());
+            Session.AddMessageToFrontend(cmd, msg.ToMessage());
         }
-        
+
         protected virtual void OnConnected(EventArgs e)
         {
             Trace.Call(e);
@@ -192,6 +196,18 @@ namespace Smuxi.Engine
             if (Connected != null) {
                 Connected(this, e);
             }
+
+            var hooks = new HookRunner("engine", "protocol-manager", "on-connected");
+            hooks.Environments.Add(new ChatHookEnvironment(Chat));
+            hooks.Environments.Add(new ProtocolManagerHookEnvironment(this));
+
+            var cmdChar = (string) Session.UserConfig["Interface/Entry/CommandCharacter"];
+            hooks.Commands.Add(new SessionHookCommand(Session, Chat, cmdChar));
+            hooks.Commands.Add(new ProtocolManagerHookCommand(this, Chat, cmdChar));
+
+            // show time
+            hooks.Init();
+            hooks.Run();
         }
         
         protected virtual void OnDisconnected(EventArgs e)
@@ -210,8 +226,74 @@ namespace Smuxi.Engine
             if (Disconnected != null) {
                 Disconnected(this, e);
             }
+
+            var hooks = new HookRunner("engine", "protocol-manager", "on-disconnected");
+            hooks.Environments.Add(new ChatHookEnvironment(Chat));
+            hooks.Environments.Add(new ProtocolManagerHookEnvironment(this));
+
+            var cmdChar = (string) Session.UserConfig["Interface/Entry/CommandCharacter"];
+            hooks.Commands.Add(new SessionHookCommand(Session, Chat, cmdChar));
+            hooks.Commands.Add(new ProtocolManagerHookCommand(this, Chat, cmdChar));
+
+            // show time
+            hooks.Init();
+            hooks.Run();
         }
         
+        protected virtual void OnMessageSent(MessageEventArgs e)
+        {
+            Trace.Call(e);
+
+            if (MessageSent != null) {
+                MessageSent(this, e);
+            }
+
+            var hooks = new HookRunner("engine", "protocol-manager", "on-message-sent");
+            hooks.Environments.Add(new ChatHookEnvironment(e.Chat));
+
+            var sender = e.Sender;
+            if (String.IsNullOrEmpty(sender)) {
+                sender = Me.ID;
+            }
+            hooks.Environments.Add(new MessageHookEnvironment(e.Message, sender, e.Receiver));
+            hooks.Environments.Add(new ProtocolManagerHookEnvironment(this));
+
+            var cmdChar = (string) Session.UserConfig["Interface/Entry/CommandCharacter"];
+            hooks.Commands.Add(new SessionHookCommand(Session, e.Chat, cmdChar));
+            hooks.Commands.Add(new ProtocolManagerHookCommand(this, e.Chat, cmdChar));
+
+            // show time
+            hooks.Init();
+            hooks.Run();
+        }
+
+        protected virtual void OnMessageReceived(MessageEventArgs e)
+        {
+            Trace.Call(e);
+
+            if (MessageReceived != null) {
+                MessageReceived(this, e);
+            }
+
+            var hooks = new HookRunner("engine", "protocol-manager", "on-message-received");
+            hooks.Environments.Add(new ChatHookEnvironment(e.Chat));
+
+            var receiver = e.Receiver;
+            if (String.IsNullOrEmpty(receiver)) {
+                receiver = Me.ID;
+            }
+            hooks.Environments.Add(new MessageHookEnvironment(e.Message, e.Sender, receiver));
+            hooks.Environments.Add(new ProtocolManagerHookEnvironment(this));
+
+            var cmdChar = (string) Session.UserConfig["Interface/Entry/CommandCharacter"];
+            hooks.Commands.Add(new SessionHookCommand(Session, e.Chat, cmdChar));
+            hooks.Commands.Add(new ProtocolManagerHookCommand(this, e.Chat, cmdChar));
+
+            // show time
+            hooks.Init();
+            hooks.Run();
+        }
+
         private static string _(string msg)
         {
             return LibraryCatalog.GetString(msg, _LibraryTextDomain);
@@ -298,4 +380,21 @@ namespace Smuxi.Engine
             Session.AddMessageToChat(Chat, msgBuilder.ToMessage());
         }
     }
+
+    public class MessageEventArgs : EventArgs
+    {
+        public ChatModel Chat { get; protected set; }
+        public MessageModel Message { get; protected set; }
+        public string Sender { get; protected set; }
+        public string Receiver { get; protected set; }
+
+        public MessageEventArgs(ChatModel chat, MessageModel msg,
+                                string sender, string receiver)
+        {
+            Chat = chat;
+            Message = msg;
+            Sender = sender;
+            Receiver = receiver;
+        }
+    }
 }
diff --git a/src/Engine/Protocols/ProtocolManagerFactory.cs b/src/Engine/Protocols/ProtocolManagerFactory.cs
index f27b478..3fa46b4 100644
--- a/src/Engine/Protocols/ProtocolManagerFactory.cs
+++ b/src/Engine/Protocols/ProtocolManagerFactory.cs
@@ -61,22 +61,22 @@ namespace Smuxi.Engine
                 types = asm.GetTypes();
             } catch (ReflectionTypeLoadException ex) {
 #if LOG4NET
-                _Logger.ErrorFormat(
+                _Logger.WarnFormat(
                     "LoadProtocolManager(): GetTypes() on {0} threw exceptions",
                     filename
                 );
                 foreach (var loaderEx in ex.LoaderExceptions) {
-                    _Logger.Error(
+                    _Logger.Warn(
                         "LoadProtocolManager(): LoaderException: ",
                         loaderEx
                     );
-                    _Logger.Error(
+                    _Logger.Warn(
                         "LoadProtocolManager(): LoaderException.InnerException: ",
                         loaderEx.InnerException
                     );
                 }
 #endif
-                throw;
+                types = ex.Types;
             }
             
             foreach (Type type in types) {
diff --git a/src/Engine/Session.cs b/src/Engine/Session.cs
index ec94881..9c552c1 100644
--- a/src/Engine/Session.cs
+++ b/src/Engine/Session.cs
@@ -64,6 +64,18 @@ namespace Smuxi.Engine
                 return _ProtocolManagers;
             }
         }
+
+        public IProtocolManager FirstProtocolManager {
+            get {
+                lock (_ProtocolManagers) {
+                    if (_ProtocolManagers.Count == 0) {
+                        return null;
+                    } else {
+                        return _ProtocolManagers[0];
+                    }
+                }
+            }
+        }
         
         public IList<ChatModel> Chats {
             get {
@@ -149,6 +161,25 @@ namespace Smuxi.Engine
                                       TimeSpan.Zero, NewsFeedUpdateInterval);
         }
 
+        public IProtocolManager NextProtocolManager(IProtocolManager currentProtocolManager)
+        {
+            lock (_ProtocolManagers) {
+                if (_ProtocolManagers.Count == 0) {
+                    return null;
+                }
+                int pos = 0;
+                if (currentProtocolManager != null) {
+                    pos = _ProtocolManagers.IndexOf(currentProtocolManager);
+                }
+                if (pos < _ProtocolManagers.Count - 1) {
+                    pos++;
+                } else {
+                    pos = 0;
+                }
+                return _ProtocolManagers[pos];
+            }
+        }
+
         protected MessageBuilder CreateMessageBuilder()
         {
             var builder = new MessageBuilder();
@@ -417,6 +448,7 @@ namespace Smuxi.Engine
             } else {
                 // normal text
                 if (cd.Chat.ChatType == ChatType.Session &&
+                    cd.FrontendManager != null &&
                     cd.FrontendManager.CurrentProtocolManager == null) {
                     _NotConnected(cd);
                     handled = true;
@@ -437,7 +469,7 @@ namespace Smuxi.Engine
             // TRANSLATOR: this line is used as a label / category for a
             // list of commands below
             builder.AppendHeader(_("Engine Commands"));
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            AddMessageToFrontend(cd, builder.ToMessage());
 
             string[] help = {
                 "connect/server protocol [protocol-parameters]",
@@ -456,7 +488,7 @@ namespace Smuxi.Engine
                 builder = CreateMessageBuilder();
                 builder.AppendEventPrefix();
                 builder.AppendText(line);
-                cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+                AddMessageToFrontend(cd, builder.ToMessage());
             }
         }
         
@@ -514,7 +546,9 @@ namespace Smuxi.Engine
             if (protocolManager == null && server == null) {
                 try {
                     protocolManager = CreateProtocolManager(protocol);
-                    _ProtocolManagers.Add(protocolManager);
+                    lock (_ProtocolManagers) {
+                        _ProtocolManagers.Add(protocolManager);
+                    }
                 } catch (ArgumentException ex) {
                     if (ex.ParamName != "protocol") {
                         throw;
@@ -523,7 +557,7 @@ namespace Smuxi.Engine
                     builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendErrorText(ex.Message);
-                    fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    AddMessageToFrontend(cd, builder.ToMessage());
                     return;
                 }
             }
@@ -588,7 +622,7 @@ namespace Smuxi.Engine
                         _("Disconnect failed - could not find server: {0}"),
                         server
                     );
-                    fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    AddMessageToFrontend(cd, builder.ToMessage());
                     return;
                 }
             } else {
@@ -600,7 +634,9 @@ namespace Smuxi.Engine
             }
             victim.Disconnect(fm);
             victim.Dispose();
-            _ProtocolManagers.Remove(victim);
+            lock (_ProtocolManagers) {
+                _ProtocolManagers.Remove(victim);
+            }
         }
         
         public void CommandReconnect(CommandModel cd)
@@ -626,8 +662,7 @@ namespace Smuxi.Engine
                     var builder = CreateMessageBuilder();
                     builder.AppendEventPrefix();
                     builder.AppendErrorText(_("Reconnect failed!"));
-                    cd.FrontendManager.AddMessageToChat(cd.Chat,
-                                                        builder.ToMessage());
+                    AddMessageToFrontend(cd, builder.ToMessage());
                 }
             });
         }
@@ -640,7 +675,6 @@ namespace Smuxi.Engine
                 throw new ArgumentNullException("cd");
             }
             
-            FrontendManager fm = cd.FrontendManager;
             if (cd.DataArray.Length < 2) {
                 _NotEnoughParameters(cd);
                 return;
@@ -675,7 +709,7 @@ namespace Smuxi.Engine
                         builder = CreateMessageBuilder();
                         builder.AppendEventPrefix();
                         builder.AppendText("{0} = {1}", entry.Key, entry.Value);
-                        fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                        AddMessageToFrontend(cd, builder.ToMessage());
                     }
                     return;
                 case "set":
@@ -688,7 +722,7 @@ namespace Smuxi.Engine
                         builder.AppendErrorText(
                             _("Invalid key/value format.")
                         );
-                        fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                        AddMessageToFrontend(cd, builder.ToMessage());
                         return;
                     }
                     string setKey = setParam.Split('=')[0];
@@ -725,24 +759,21 @@ namespace Smuxi.Engine
                     );
                     break;
             }
-            fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+            AddMessageToFrontend(cd, builder.ToMessage());
         }
         
         public void CommandShutdown(CommandModel cmd)
         {
             Trace.Call(cmd);
 
-            if (cmd == null) {
-                throw new ArgumentNullException("cmd");
-            }
-
+            FrontendManager frontendMgr = cmd != null ? cmd.FrontendManager : null;
 #if LOG4NET
             f_Logger.Info("Shutting down...");
 #endif
             lock (_ProtocolManagers) {
                 foreach (var protocolManager in _ProtocolManagers) {
                     try {
-                        protocolManager.Disconnect(cmd.FrontendManager);
+                        protocolManager.Disconnect(frontendMgr);
                         protocolManager.Dispose();
                     } catch (Exception ex) {
 #if LOG4NET
@@ -801,7 +832,6 @@ namespace Smuxi.Engine
                 return;
             }
 
-            FrontendManager fm = cd.FrontendManager;
             if (cd.DataArray.Length >= 2) {
                 switch (cd.DataArray[1].ToLower()) {
                     case "list":
@@ -820,7 +850,7 @@ namespace Smuxi.Engine
                             _("Invalid parameter for network; use list, " +
                               "switch, or close")
                         );
-                        fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                        AddMessageToFrontend(cd, builder.ToMessage());
                         break;
                 }
             } else {
@@ -830,7 +860,6 @@ namespace Smuxi.Engine
         
         private void _CommandNetworkList(CommandModel cmd)
         {
-            var frontend = cmd.FrontendManager;
             var servers = new ServerListController(UserConfig);
             var availableNetworks = servers.GetNetworks();
             var connectedNetworks = new List<IProtocolManager>();
@@ -849,7 +878,7 @@ namespace Smuxi.Engine
             // TRANSLATOR: this line is used as a label / category for a
             // list of networks below
             msg.AppendHeader(_("Connected Networks"));
-            frontend.AddMessageToChat(cmd.Chat, msg.ToMessage());
+            AddMessageToFrontend(cmd, msg.ToMessage());
             foreach (var network in connectedNetworks) {
                 msg = CreateMessageBuilder();
                 msg.AppendEventPrefix();
@@ -857,20 +886,20 @@ namespace Smuxi.Engine
                 msg.AppendText("{0}: {1} ", _("Protocol"), network.Protocol);
                 msg.AppendText("{0}: {1} ", _("Host"),     network.Host);
                 msg.AppendText("{0}: {1}",  _("Port"),     network.Port);
-                frontend.AddMessageToChat(cmd.Chat, msg.ToMessage());
+                AddMessageToFrontend(cmd, msg.ToMessage());
             }
             if (connectedNetworks.Count == 0) {
                 msg = CreateMessageBuilder();
                 // TRANSLATOR: no connected networks
                 msg.AppendEventPrefix().AppendText("<{0}>", _("None"));
-                frontend.AddMessageToChat(cmd.Chat, msg.ToMessage());
+                AddMessageToFrontend(cmd, msg.ToMessage());
             }
 
             msg = CreateMessageBuilder();
             // TRANSLATOR: this line is used as a label / category for a
             // list of networks below
             msg.AppendHeader(_("Available Networks"));
-            frontend.AddMessageToChat(cmd.Chat, msg.ToMessage());
+            AddMessageToFrontend(cmd, msg.ToMessage());
             foreach (var network in availableNetworks) {
                 if (network == null || network.Trim().Length == 0) {
                     continue;
@@ -878,19 +907,18 @@ namespace Smuxi.Engine
                 msg = CreateMessageBuilder();
                 msg.AppendEventPrefix();
                 msg.AppendText("{0}: {1}", _("Network"), network);
-                frontend.AddMessageToChat(cmd.Chat, msg.ToMessage());
+                AddMessageToFrontend(cmd, msg.ToMessage());
             }
             if (availableNetworks.Count == 0) {
                 msg = CreateMessageBuilder();
                 // TRANSLATOR: no available networks
                 msg.AppendEventPrefix().AppendText("<{0}>", _("None"));
-                frontend.AddMessageToChat(cmd.Chat, msg.ToMessage());
+                AddMessageToFrontend(cmd, msg.ToMessage());
             }
         }
         
         private void _CommandNetworkClose(CommandModel cd)
         {
-            FrontendManager fm = cd.FrontendManager;
             IProtocolManager pm = null;
             if (cd.DataArray.Length >= 3) {
                 // named protocol manager
@@ -900,7 +928,7 @@ namespace Smuxi.Engine
                     var builder = CreateMessageBuilder();
                     builder.AppendText(_("Network close failed - could not " +
                                          "find network: {0}"), network);
-                    fm.AddMessageToChat(cd.Chat, builder.ToMessage());
+                    AddMessageToFrontend(cd, builder.ToMessage());
                     return;
                 }
             } else if (cd.DataArray.Length >= 2) {
@@ -915,10 +943,12 @@ namespace Smuxi.Engine
             // disconnect in background as could be blocking
             ThreadPool.QueueUserWorkItem(delegate {
                 try {
-                    pm.Disconnect(fm);
+                    pm.Disconnect(cd.FrontendManager);
                     pm.Dispose();
                     // Dispose() takes care of removing the chat from session (frontends)
-                    _ProtocolManagers.Remove(pm);
+                    lock (_ProtocolManagers) {
+                        _ProtocolManagers.Remove(pm);
+                    }
                 } catch (Exception ex) {
 #if LOG4NET
                     f_Logger.Error("_CommandNetworkClose(): Exception", ex);
@@ -930,6 +960,10 @@ namespace Smuxi.Engine
         private void _CommandNetworkSwitch(CommandModel cd)
         {
             FrontendManager fm = cd.FrontendManager;
+            if (fm == null) {
+                _NotEnoughParameters(cd);
+                return;
+            }
             if (cd.DataArray.Length >= 3) {
                 // named network manager
                 string network = cd.DataArray[2];
@@ -955,7 +989,7 @@ namespace Smuxi.Engine
         {
             var builder = CreateMessageBuilder();
             builder.AppendText(_("Not connected to any network"));
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            AddMessageToFrontend(cd, builder.ToMessage());
         }
         
         private void _NotEnoughParameters(CommandModel cd)
@@ -963,7 +997,7 @@ namespace Smuxi.Engine
             var builder = CreateMessageBuilder();
             builder.AppendText(_("Not enough parameters for {0} command"),
                                cd.Command);
-            cd.FrontendManager.AddMessageToChat(cd.Chat, builder.ToMessage());
+            AddMessageToFrontend(cd, builder.ToMessage());
         }
         
         public void UpdateNetworkStatus()
@@ -1370,37 +1404,48 @@ namespace Smuxi.Engine
             IProtocolManager protocolManager = CreateProtocolManager(
                 server.Protocol
             );
-            _ProtocolManagers.Add(protocolManager);
+            lock (_ProtocolManagers) {
+                _ProtocolManagers.Add(protocolManager);
+            }
 
             string password = null;
             // only pass non-empty passwords to Connect()
             if (!String.IsNullOrEmpty(server.Password)) {
                 password = server.Password;
             }
-            protocolManager.Connect(frontendManager, server);
-            if (protocolManager.Chat == null) {
-                // just in case the ProtocolManager is not setting the
-                // protocol chat
-                throw new ApplicationException(_("Connect failed."));
-            }
 
             if (server.OnConnectCommands != null && server.OnConnectCommands.Count > 0) {
                 protocolManager.Connected += delegate {
-                    foreach (string command in server.OnConnectCommands) {
-                        if (command.Length == 0) {
-                            continue;
+                    ThreadPool.QueueUserWorkItem(delegate {
+                        try {
+                            foreach (string command in server.OnConnectCommands) {
+                                if (command.Length == 0) {
+                                    continue;
+                                }
+                                CommandModel cd = new CommandModel(
+                                    frontendManager,
+                                    protocolManager.Chat,
+                                    (string) _UserConfig["Interface/Entry/CommandCharacter"],
+                                    command
+                                );
+                                protocolManager.Command(cd);
+                            }
+                        } catch (Exception ex) {
+#if LOG4NET
+                            f_Logger.Error("Connected event: Exception", ex);
+#endif
                         }
-                        CommandModel cd = new CommandModel(
-                            frontendManager,
-                            protocolManager.Chat,
-                            (string) _UserConfig["Interface/Entry/CommandCharacter"],
-                            command
-                        );
-                        protocolManager.Command(cd);
-                    }
+                    });
                 };
             }
 
+            protocolManager.Connect(frontendManager, server);
+            if (protocolManager.Chat == null) {
+                // just in case the ProtocolManager is not setting the
+                // protocol chat
+                throw new ApplicationException(_("Connect failed."));
+            }
+
             return protocolManager;
         }
         
@@ -1455,6 +1500,15 @@ namespace Smuxi.Engine
                 if (protocol == "twitter") {
                     return;
                 }
+
+                // don't log chatstates
+                switch (msg.MessageType) {
+                    case MessageType.ChatStateComposing:
+                    case MessageType.ChatStatePaused:
+                    case MessageType.ChatStateReset:
+                        return;
+                }
+
                 using (var stream = File.AppendText(chat.LogFile)) {
                     stream.WriteLine(
                         String.Format(
@@ -1530,6 +1584,32 @@ namespace Smuxi.Engine
             return false;
         }
 
+        public void AddMessageToFrontend(CommandModel cmd, MessageModel msg)
+        {
+            if (cmd == null) {
+                throw new ArgumentNullException("cmd");
+            }
+
+            AddMessageToFrontend(cmd.FrontendManager, cmd.Chat, msg);
+        }
+
+        public void AddMessageToFrontend(FrontendManager fm, ChatModel chat, MessageModel msg)
+        {
+            if (chat == null) {
+                throw new ArgumentNullException("chat");
+            }
+            if (msg == null) {
+                throw new ArgumentNullException("msg");
+            }
+
+            if (fm == null) {
+                // fallback to session
+                AddMessageToChat(chat, msg);
+            } else {
+                fm.AddMessageToChat(chat, msg);
+            }
+        }
+
        void OnUserConfigChanged(object sender, ConfigChangedEventArgs e)
        {
             if (e.Key.StartsWith("Filters/")) {
diff --git a/src/Engine/SessionManager.cs b/src/Engine/SessionManager.cs
index 936bd08..fc50cf2 100644
--- a/src/Engine/SessionManager.cs
+++ b/src/Engine/SessionManager.cs
@@ -113,5 +113,14 @@ namespace Smuxi.Engine
             
             return null;
         }
+
+        internal void Shutdown()
+        {
+            lock (_Sessions) {
+                foreach (Session session in _Sessions.Values) {
+                    session.CommandShutdown(null);
+                }
+            }
+        }
     }
 }
diff --git a/src/Engine/UICommandContainer.cs b/src/Engine/UICommandContainer.cs
deleted file mode 100644
index 3489261..0000000
--- a/src/Engine/UICommandContainer.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- *
- * Smuxi - Smart MUltipleXed Irc
- *
- * Copyright (c) 2005-2006 Mirco Bauer <meebey at meebey.net>
- *
- * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-namespace Smuxi.Engine
-{
-    public class UICommandContainer
-    {
-        private UICommand _Command;
-        private object[]  _Parameters;
-        
-        public UICommand Command
-        {
-            get {
-                return _Command;
-            }
-        }
-        
-        public object[] Parameters
-        {
-            get {
-                return _Parameters;
-            }
-        }
-        
-        public UICommandContainer(UICommand command, params object[] parameters)
-        {
-            _Command = command;
-            _Parameters = parameters;
-        }
-    }
-}
diff --git a/src/Frontend-Curses/Makefile.in b/src/Frontend-Curses/Makefile.in
index f26e7a7..ad8d128 100644
--- a/src/Frontend-Curses/Makefile.in
+++ b/src/Frontend-Curses/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -202,6 +202,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Frontend-GNOME-IRC/Makefile.in b/src/Frontend-GNOME-IRC/Makefile.in
index c4f254e..25bb316 100644
--- a/src/Frontend-GNOME-IRC/Makefile.in
+++ b/src/Frontend-GNOME-IRC/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -201,6 +201,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Engine/UICommand.cs b/src/Frontend-GNOME-Twitter/AssemblyInfo.cs
similarity index 63%
rename from src/Engine/UICommand.cs
rename to src/Frontend-GNOME-Twitter/AssemblyInfo.cs
index 0f72303..7251823 100644
--- a/src/Engine/UICommand.cs
+++ b/src/Frontend-GNOME-Twitter/AssemblyInfo.cs
@@ -1,13 +1,7 @@
 /*
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- *
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2005-2006 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2013 Andrés G. Aragoneses <knocte at gmail.com>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -26,21 +20,12 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-namespace Smuxi.Engine
-{
-    public enum UICommand
-    {
-        AddChat,
-        RemoveChat,
-        EnableChat,
-        DisableChat,
-        SyncChat,
-        AddMessageToChat,
-        AddPersonToGroupChat,
-        UpdatePersonInGroupChat,
-        UpdateTopicInGroupChat,
-        RemovePersonFromGroupChat,
-        SetNetworkStatus,
-        SetStatus,
-    }
-}
+using System.Reflection;
+
+[assembly: AssemblyTitle("Smuxi - Twitter support for GNOME frontend")]
+[assembly: AssemblyCopyright("2013 (C) Andrés G. Aragoneses <knocte at gmail.com>, " +
+                             "2013 (C) Mirco Bauer <meebey at meebey.net>")]
+
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+
diff --git a/src/Frontend-GNOME-Twitter/Makefile.am b/src/Frontend-GNOME-Twitter/Makefile.am
new file mode 100644
index 0000000..a02ac88
--- /dev/null
+++ b/src/Frontend-GNOME-Twitter/Makefile.am
@@ -0,0 +1,38 @@
+TARGET_DIR = $(top_builddir)/bin/$(PROFILE)
+ASSEMBLY_NAME = smuxi-frontend-gnome-twitter
+ASSEMBLY_FILENAME = $(ASSEMBLY_NAME).dll
+ASSEMBLY_TARGET = $(TARGET_DIR)/$(ASSEMBLY_FILENAME)
+
+SOURCES = \
+	$(top_srcdir)/src/AssemblyVersion.cs \
+	AssemblyInfo.cs \
+	TwitterGroupChatView.cs
+
+REFERENCES = \
+	System \
+	System.Core \
+	Mono.Posix \
+	$(LOG4NET_LIBS) \
+	$(GTK_SHARP_20_LIBS)
+
+DLL_REFERENCES = \
+	$(TARGET_DIR)/smuxi-common.dll \
+	$(TARGET_DIR)/smuxi-engine.dll \
+	$(TARGET_DIR)/smuxi-engine-twitter.dll \
+	$(TARGET_DIR)/smuxi-frontend.dll \
+	$(TARGET_DIR)/smuxi-frontend-gnome.exe
+
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+
+# automake magic variables
+EXTRA_DIST = $(SOURCES_BUILD)
+CLEANFILES = $(ASSEMBLY_TARGET) $(ASSEMBLY_TARGET).mdb
+
+pkgapp_DATA = $(ASSEMBLY_TARGET) $(ASSEMBLY_TARGET).mdb
+
+include $(top_srcdir)/Makefile.include
+
+all: $(ASSEMBLY_TARGET)
+
+$(ASSEMBLY_TARGET) $(ASSEMBLY_TARGET).mdb: $(SOURCES) $(DLL_REFERENCES)
+	$(CSC) $(CSC_FLAGS) $(build_references_ref) -target:library -out:$@ $(SOURCES_BUILD)
diff --git a/src/Engine-Campfire/Makefile.in b/src/Frontend-GNOME-Twitter/Makefile.in
similarity index 98%
copy from src/Engine-Campfire/Makefile.in
copy to src/Frontend-GNOME-Twitter/Makefile.in
index f4b2477..952889b 100644
--- a/src/Engine-Campfire/Makefile.in
+++ b/src/Frontend-GNOME-Twitter/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -81,7 +81,7 @@ build_triplet = @build@
 host_triplet = @host@
 DIST_COMMON = $(top_srcdir)/Makefile.include $(srcdir)/Makefile.in \
 	$(srcdir)/Makefile.am
-subdir = src/Engine-Campfire
+subdir = src/Frontend-GNOME-Twitter
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/expansions.m4 \
 	$(top_srcdir)/intltool.m4 $(top_srcdir)/libtool.m4 \
@@ -218,6 +218,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -387,29 +388,27 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 twitter_api_key = @twitter_api_key@
 TARGET_DIR = $(top_builddir)/bin/$(PROFILE)
-ASSEMBLY_NAME = smuxi-engine-campfire
+ASSEMBLY_NAME = smuxi-frontend-gnome-twitter
 ASSEMBLY_FILENAME = $(ASSEMBLY_NAME).dll
 ASSEMBLY_TARGET = $(TARGET_DIR)/$(ASSEMBLY_FILENAME)
 SOURCES = \
 	$(top_srcdir)/src/AssemblyVersion.cs \
 	AssemblyInfo.cs \
-	Protocols/Campfire/CampfireProtocolManager.cs \
-	Protocols/Campfire/CampfirePersonModel.cs \
-	Protocols/Campfire/CampfireEventStream.cs \
-	Protocols/Campfire/DTO.cs
+	TwitterGroupChatView.cs
 
 REFERENCES = \
 	System \
-	System.Web \
+	System.Core \
 	Mono.Posix \
-	$(LOG4NET_LIBS)
+	$(LOG4NET_LIBS) \
+	$(GTK_SHARP_20_LIBS)
 
 DLL_REFERENCES = \
 	$(TARGET_DIR)/smuxi-common.dll \
 	$(TARGET_DIR)/smuxi-engine.dll \
-	$(TARGET_DIR)/ServiceStack.Common.dll \
-	$(TARGET_DIR)/ServiceStack.Interfaces.dll \
-	$(TARGET_DIR)/ServiceStack.Text.dll
+	$(TARGET_DIR)/smuxi-engine-twitter.dll \
+	$(TARGET_DIR)/smuxi-frontend.dll \
+	$(TARGET_DIR)/smuxi-frontend-gnome.exe
 
 SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
 
@@ -482,9 +481,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Engine-Campfire/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Frontend-GNOME-Twitter/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign src/Engine-Campfire/Makefile
+	  $(AUTOMAKE) --foreign src/Frontend-GNOME-Twitter/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
diff --git a/src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs b/src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs
new file mode 100644
index 0000000..67e81d8
--- /dev/null
+++ b/src/Frontend-GNOME-Twitter/TwitterGroupChatView.cs
@@ -0,0 +1,201 @@
+// Smuxi - Smart MUltipleXed Irc
+//
+// Copyright (c) 2013 Andrés G. Aragoneses <knocte at gmail.com>
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
+// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+using System;
+using System.Threading;
+using Smuxi.Common;
+using Smuxi.Engine;
+
+namespace Smuxi.Frontend.Gnome
+{
+    [ChatViewInfo(ChatType = ChatType.Group, ProtocolManagerType = typeof(TwitterProtocolManager))]
+    public class TwitterGroupChatView : GroupChatView
+    {
+        static readonly string LibraryTextDomain = "smuxi-frontend-gnome-twitter";
+        TwitterProtocolManager TwitterProtocolManager { get; set; }
+
+        public TwitterGroupChatView(GroupChatModel groupChat) : base(groupChat)
+        {
+            Trace.Call(groupChat);
+        }
+
+        protected override void OnPersonMenuShown(object sender, EventArgs e)
+        {
+            Trace.Call(sender, e);
+
+            foreach (var child in PersonMenu.Children) {
+                PersonMenu.Remove(child);
+            }
+
+            base.OnPersonMenuShown(sender, e);
+
+            Gtk.MenuItem item;
+            if (Frontend.EngineVersion >= new Version(0, 7)) {
+                item = new Gtk.ImageMenuItem(_("Direct Message"));
+                item.Activated += OnUserListMenuDirectMessageActivated;
+                PersonMenu.Append(item);
+
+                PersonMenu.Append(new Gtk.SeparatorMenuItem());
+            }
+
+            if (Frontend.EngineVersion >= new Version(0, 10)) {
+                item = new Gtk.ImageMenuItem(_("Timeline"));
+                item.Activated += OnUserListMenuTimelineActivated;
+                PersonMenu.Append(item);
+
+                if (ID == TwitterChatType.FriendsTimeline.ToString()) {
+                    item = new Gtk.ImageMenuItem(_("Unfollow"));
+                    item.Activated += OnUserListMenuUnfollowActivated;
+                    PersonMenu.Append(item);
+                } else {
+                    item = new Gtk.ImageMenuItem(_("Follow"));
+                    item.Activated += OnUserListMenuFollowActivated;
+                    PersonMenu.Append(item);
+                }
+            }
+
+            PersonMenu.ShowAll();
+        }
+
+        void OnUserListMenuUnfollowActivated(object sender, EventArgs e)
+        {
+            Trace.Call(sender, e);
+
+            var persons = GetSelectedPersons();
+            if (persons == null) {
+                return;
+            }
+
+            foreach (var person in persons) {
+                var per = person;
+                ThreadPool.QueueUserWorkItem(delegate {
+                    try {
+                        TwitterProtocolManager.CommandUnfollow(
+                            new CommandModel(
+                                Frontend.FrontendManager,
+                                ChatModel,
+                                per.ID
+                            )
+                        );
+                    } catch (Exception ex) {
+                        Frontend.ShowException(ex);
+                    }
+                });
+            }
+        }
+
+        void OnUserListMenuFollowActivated(object sender, EventArgs e)
+        {
+            Trace.Call(sender, e);
+
+            var persons = GetSelectedPersons();
+            if (persons == null) {
+                return;
+            }
+
+            foreach (var person in persons) {
+                var per = person;
+                ThreadPool.QueueUserWorkItem(delegate {
+                    try {
+                        TwitterProtocolManager.CommandFollow(
+                            new CommandModel(
+                                Frontend.FrontendManager,
+                                ChatModel,
+                                per.ID
+                            )
+                        );
+                    } catch (Exception ex) {
+                        Frontend.ShowException(ex);
+                    }
+                });
+            }
+        }
+
+        void OnUserListMenuDirectMessageActivated(object sender, EventArgs e)
+        {
+            Trace.Call(sender, e);
+
+            var persons = GetSelectedPersons();
+            if (persons == null) {
+                return;
+            }
+
+            foreach (var person in persons) {
+                var per = person;
+                ThreadPool.QueueUserWorkItem(delegate {
+                    try {
+                        TwitterProtocolManager.CommandMessage(
+                            new CommandModel(
+                                Frontend.FrontendManager,
+                                ChatModel,
+                                per.IdentityName
+                            )
+                        );
+                    } catch (Exception ex) {
+                        Frontend.ShowException(ex);
+                    }
+                });
+            }
+        }
+
+        void OnUserListMenuTimelineActivated(object sender, EventArgs e)
+        {
+            Trace.Call(sender, e);
+
+            var persons = GetSelectedPersons();
+            if (persons == null) {
+                return;
+            }
+
+            foreach (var person in persons) {
+                var per = person;
+                ThreadPool.QueueUserWorkItem(delegate {
+                    try {
+                        TwitterProtocolManager.CommandTimeline(
+                            new CommandModel(
+                                Frontend.FrontendManager,
+                                ChatModel,
+                                per.IdentityName
+                            )
+                        );
+                    } catch (Exception ex) {
+                        Frontend.ShowException(ex);
+                    }
+                });
+            }
+        }
+
+        public override void Sync()
+        {
+            Trace.Call();
+
+            base.Sync();
+
+            TwitterProtocolManager = (TwitterProtocolManager) ProtocolManager;
+        }
+
+        static string _(string msg)
+        {
+            return LibraryCatalog.GetString(msg, LibraryTextDomain);
+        }
+    }
+}
+
diff --git a/src/Frontend-GNOME-XMPP/Makefile.in b/src/Frontend-GNOME-XMPP/Makefile.in
index a5fb0d5..16c9d29 100644
--- a/src/Frontend-GNOME-XMPP/Makefile.in
+++ b/src/Frontend-GNOME-XMPP/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -201,6 +201,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Frontend-GNOME-XMPP/XmppGroupChatView.cs b/src/Frontend-GNOME-XMPP/XmppGroupChatView.cs
index 7280ea5..5228e12 100644
--- a/src/Frontend-GNOME-XMPP/XmppGroupChatView.cs
+++ b/src/Frontend-GNOME-XMPP/XmppGroupChatView.cs
@@ -42,6 +42,20 @@ namespace Smuxi.Frontend.Gnome
             Trace.Call(chat);
         }
 
+        protected override void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
+        {
+            if (!IsActive) {
+                switch (e.Message.MessageType) {
+                    case MessageType.PresenceStateOffline:
+                    case MessageType.PresenceStateAway:
+                    case MessageType.PresenceStateOnline:
+                        HasEvent = true;
+                        break;
+                }
+            }
+            base.OnMessageTextViewMessageAdded(sender, e);
+        }
+
         void OnPersonRenameEditingStarted(object o, Gtk.EditingStartedArgs e)
         {
             Trace.Call(o, e);
diff --git a/src/Frontend-GNOME-XMPP/XmppPersonChatView.cs b/src/Frontend-GNOME-XMPP/XmppPersonChatView.cs
index 07e22af..e03e8c5 100644
--- a/src/Frontend-GNOME-XMPP/XmppPersonChatView.cs
+++ b/src/Frontend-GNOME-XMPP/XmppPersonChatView.cs
@@ -31,11 +31,169 @@ namespace Smuxi.Frontend.Gnome
         private static readonly string _LibraryTextDomain = "smuxi-frontend-gnome-xmpp";
         private XmppProtocolManager XmppProtocolManager { get; set; }
 
+        // for finding the position of the dots and removing them
+        Gtk.TextMark ChatStateStartPosition { get; set; }
+        bool ChatStatePositionValid { get; set; }
+
+        // for drawing the dots
+        int NumberOfTypingDots { get; set; }
+        bool IsDisposed { get; set; }
+        bool IsComposing { get; set; }
+        bool ChatStateTimeoutRunning { get; set; }
+        MessageModel TypingDots { get; set; }
+
+        // for remembering the presence state
+        MessageModel LastPresenceMessage { get; set; }
+
         public XmppPersonChatView(PersonChatModel personChat) : base(personChat)
         {
             Trace.Call(personChat);
 
             OutputMessageTextView.PopulatePopup += _OnOutputMessageTextViewPopulatePopup;
+            ChatStateStartPosition = new Gtk.TextMark("ChatStateStartPosition", true);
+            IsDisposed = false;
+        }
+
+        void DeleteOldChatState()
+        {
+            if (!ChatStatePositionValid) {
+                return;
+            }
+            var buffer = OutputMessageTextView.Buffer;
+            var start = buffer.GetIterAtMark(ChatStateStartPosition);
+            var end = buffer.EndIter;
+            buffer.Delete(ref start, ref end);
+            buffer.DeleteMark(ChatStateStartPosition);
+            if (buffer.EndIter.Offset < OutputMessageTextView.MarkerlineBufferPosition) {
+                // in the rare case that the markeline is below the dots, move it to the correct position
+                OutputMessageTextView.UpdateMarkerline();
+            }
+            ChatStatePositionValid = false;
+        }
+
+        void UpdateChatState()
+        {
+            DeleteOldChatState();
+            if (LastPresenceMessage == null && TypingDots == null) {
+                // nothing to display
+                return;
+            }
+            var buffer = OutputMessageTextView.Buffer;
+            buffer.AddMark(ChatStateStartPosition, buffer.EndIter);
+
+            if (TypingDots != null) {
+                OutputMessageTextView.AddMessage(TypingDots, true, false);
+            }
+            if (LastPresenceMessage != null) {
+                OutputMessageTextView.AddMessage(LastPresenceMessage, false);
+            }
+
+            ChatStatePositionValid = true;
+        }
+
+        void SetPresenceStateText(MessageModel msg)
+        {
+            LastPresenceMessage = msg;
+            UpdateChatState();
+        }
+
+        void ClearPresenceStateText()
+        {
+            if (LastPresenceMessage == null) {
+                // nothing to do, probably received duplicate available messages
+                return;
+            }
+            LastPresenceMessage = null;
+            UpdateChatState();
+        }
+
+        bool TypingDotsCallback()
+        {
+            if (IsDisposed) {
+                return false;
+            }
+            if (IsComposing) {
+                NumberOfTypingDots++;
+                if (NumberOfTypingDots == 4) {
+                    NumberOfTypingDots = 0;
+                }
+            } else {
+                NumberOfTypingDots--;
+                if (NumberOfTypingDots <= 0) {
+                    // done
+                    TypingDots = null;
+                    UpdateChatState();
+                    ChatStateTimeoutRunning = false;
+                    return false;
+                }
+            }
+            var builder = new MessageBuilder();
+            builder.AppendText(new string('.', NumberOfTypingDots));
+            TypingDots = builder.ToMessage();
+            UpdateChatState();
+            GLib.Timeout.Add(300, TypingDotsCallback);
+            return false;
+        }
+
+        void StartMovingDots()
+        {
+            IsComposing = true;
+            if (!ChatStateTimeoutRunning) {
+                ChatStateTimeoutRunning = true;
+                NumberOfTypingDots = 0;
+                TypingDotsCallback();
+            }
+        }
+
+        void StopMovingDots()
+        {
+            if (!ChatStateTimeoutRunning) {
+                // already done
+                return;
+            }
+            IsComposing = false;
+        }
+
+        void AbortMovingDots()
+        {
+            TypingDots = null;
+            UpdateChatState();
+            if (!ChatStateTimeoutRunning) {
+                // already done
+                return;
+            }
+            // will be removed on next call to UpdateChatState()
+            NumberOfTypingDots = 0;
+            IsComposing = false;
+        }
+
+        public override void AddMessage(MessageModel msg)
+        {
+            Trace.Call(msg);
+            switch (msg.MessageType) {
+                case MessageType.ChatStateComposing:
+                    StartMovingDots();
+                    break;
+                case MessageType.ChatStatePaused:
+                    StopMovingDots();
+                    break;
+                case MessageType.ChatStateReset:
+                    AbortMovingDots();
+                    break;
+                case MessageType.PresenceStateOnline:
+                    ClearPresenceStateText();
+                    break;
+                case MessageType.PresenceStateOffline:
+                case MessageType.PresenceStateAway:
+                    SetPresenceStateText(msg);
+                    break;
+                default:
+                    AbortMovingDots();
+                    DeleteOldChatState();
+                    base.AddMessage(msg);
+                    UpdateChatState();
+                    break;
+            }
         }
 
         private void _OnOutputMessageTextViewPopulatePopup (object o, Gtk.PopulatePopupArgs args)
@@ -120,6 +278,13 @@ namespace Smuxi.Frontend.Gnome
             return LibraryCatalog.GetString(msg, _LibraryTextDomain);
         }
 
+        public override void Dispose()
+        {
+            Trace.Call();
+            IsDisposed = true;
+            base.Dispose();
+        }
+
         public override void Sync()
         {
             Trace.Call();
diff --git a/src/Frontend-GNOME/ChatViewManager.cs b/src/Frontend-GNOME/ChatViewManager.cs
index 2b6fbbd..4da44b9 100644
--- a/src/Frontend-GNOME/ChatViewManager.cs
+++ b/src/Frontend-GNOME/ChatViewManager.cs
@@ -40,7 +40,7 @@ namespace Smuxi.Frontend.Gnome
         private List<ChatView> f_Chats = new List<ChatView>();
         public  IList<ChatView> SyncedChats { get; private set; }
         private Notebook       f_Notebook;
-        private Gtk.TreeView   f_TreeView;
+        ChatTreeView TreeView { get; set; }
         private UserConfig     f_Config;
         ChatViewSyncManager    SyncManager { get; set; }
         bool AutoSwitchPersonChats { get; set; }
@@ -58,13 +58,14 @@ namespace Smuxi.Frontend.Gnome
 
         public ChatView CurrentChatView {
             get {
-                return f_Notebook.CurrentChatView;
+                return TreeView.CurrentChatView;
             }
             set {
                 if (value == null) {
                     return;
                 }
                 f_Notebook.CurrentChatView = value;
+                TreeView.CurrentChatView = value;
             }
         }
 
@@ -73,16 +74,10 @@ namespace Smuxi.Frontend.Gnome
                 if (CurrentChatView == null) {
                     return -1;
                 }
-                return f_Notebook.CurrentPage;
+                return TreeView.CurrentChatNumber;
             }
             set {
-                if (value < 0) {
-                    value = f_Notebook.NPages + value;
-                } else if (value >= f_Notebook.NPages) {
-                    value = value - f_Notebook.NPages;
-                }
-
-                f_Notebook.CurrentPage = value;
+                TreeView.CurrentChatNumber = value;
             }
         }
 
@@ -95,6 +90,7 @@ namespace Smuxi.Frontend.Gnome
         public bool IsSensitive {
             set {
                 f_Notebook.Sensitive = value;
+                TreeView.Sensitive = value;
                 Frontend.MainWindow.MenuWidget.Sensitive = value;
                 Frontend.MainWindow.Entry.Sensitive = value;
             }
@@ -103,10 +99,11 @@ namespace Smuxi.Frontend.Gnome
             }
         }
 
-        public ChatViewManager(Notebook notebook, Gtk.TreeView treeView)
+        public ChatViewManager(Notebook notebook, ChatTreeView treeView)
         {
             f_Notebook = notebook;
-            f_TreeView = treeView;
+            TreeView = treeView;
+            TreeView.Selection.Changed += OnTreeViewSelectionChanged;
             SyncedChats = new List<ChatView>();
             SyncManager = new ChatViewSyncManager();
             SyncManager.ChatAdded += OnChatAdded;
@@ -137,6 +134,7 @@ namespace Smuxi.Frontend.Gnome
             }
 
             f_Notebook.RemovePage(f_Notebook.PageNum(chatView));
+            TreeView.Remove(chatView);
             f_Chats.Remove(chatView);
             SyncManager.Remove(chat);
             SyncedChats.Remove(chatView);
@@ -242,6 +240,21 @@ namespace Smuxi.Frontend.Gnome
             Frontend.MainWindow.Iconify();
         }
 
+        public ProtocolChatView FindProtocolChatViewParent(ChatView child)
+        {
+            foreach (var candidate in Chats) {
+                if (!(candidate is ProtocolChatView) ||
+                    candidate.ProtocolManager == null) {
+                    continue;
+                }
+                if (child.ProtocolManager != candidate.ProtocolManager) {
+                    continue;
+                }
+                return (ProtocolChatView) candidate;
+            }
+            return null;
+        }
+
         void OnChatAdded(object sender, ChatViewAddedEventArgs e)
         {
             Trace.Call(sender, e);
@@ -271,6 +284,7 @@ namespace Smuxi.Frontend.Gnome
                 } else {
                     f_Notebook.InsertPage(chatView, chatView.LabelWidget, idx);
                 }
+                TreeView.Append(chatView);
 
                 // notify the sync manager that the ChatView is ready to be synced
                 SyncManager.ReleaseSync(chatView);
@@ -285,7 +299,7 @@ namespace Smuxi.Frontend.Gnome
                 if (Frontend.IsLocalEngine) {
                     if ((chatView is PersonChatView && AutoSwitchPersonChats) ||
                         (chatView is GroupChatView && AutoSwitchGroupChats)) {
-                        CurrentChatNumber = idx;
+                        CurrentChatView = chatView;
                     }
                 }
 
@@ -355,6 +369,13 @@ namespace Smuxi.Frontend.Gnome
             Frontend.ShowException(e.Exception);
         }
 
+        void OnTreeViewSelectionChanged(object sender, EventArgs e)
+        {
+            Trace.Call(sender, e);
+
+            CurrentChatView = TreeView.CurrentChatView;
+        }
+
         int GetSortedChatPosition(ChatView chatView)
         {
             // starting with > 0.8 the Engine supplies ChatModel.Position for us
diff --git a/src/Frontend-GNOME/EngineManagerDialog.cs b/src/Frontend-GNOME/EngineManagerDialog.cs
index feb196c..cda0be0 100644
--- a/src/Frontend-GNOME/EngineManagerDialog.cs
+++ b/src/Frontend-GNOME/EngineManagerDialog.cs
@@ -1,13 +1,7 @@
 /*
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- *
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2005-2006 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2005-2013 Mirco Bauer <meebey at meebey.net>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -46,6 +40,7 @@ namespace Smuxi.Frontend.Gnome
         private EngineManager _EngineManager;
         private Gtk.Button    _EditButton;
         private Gtk.Button    _DeleteButton;
+        new Gtk.Window Parent { get; set; }
 
         public string SelectedEngine {
             get {
@@ -67,17 +62,18 @@ namespace Smuxi.Frontend.Gnome
             }
         }
 
-        public EngineManagerDialog(EngineManager engineManager)
+        public EngineManagerDialog(Gtk.Window parent, EngineManager engineManager) :
+                              base(null, parent, Gtk.DialogFlags.Modal)
         {
-            Trace.Call(engineManager);
+            Trace.Call(parent, engineManager);
             
             if (engineManager == null) {
                 throw new ArgumentNullException("engineManager");
             }
-            
+
+            Parent = parent;
             _EngineManager = engineManager;
             
-            Modal = true;
             Title = "Smuxi - " + _("Engine Manager");
             SetPosition(Gtk.WindowPosition.CenterAlways);
 
@@ -262,7 +258,7 @@ namespace Smuxi.Frontend.Gnome
         private void _OnNewButtonPressed()
         {
             EngineAssistant assistant = new EngineAssistant(
-                this,
+                Parent,
                 Frontend.FrontendConfig
             );
             assistant.Cancel += delegate {
@@ -270,7 +266,7 @@ namespace Smuxi.Frontend.Gnome
                 
                 // Restart the Dialog
                 // HACK: holy shit, please refactor this mess!
-                EngineManagerDialog dialog = new EngineManagerDialog(_EngineManager);
+                var dialog = new EngineManagerDialog(Parent, _EngineManager);
                 dialog.Run();
                 dialog.Destroy();
             };
@@ -279,7 +275,7 @@ namespace Smuxi.Frontend.Gnome
                 
                 // Restart the Dialog
                 // HACK: holy shit, please refactor this mess!
-                EngineManagerDialog dialog = new EngineManagerDialog(_EngineManager);
+                var dialog = new EngineManagerDialog(Parent, _EngineManager);
                 dialog.Run();
                 dialog.Destroy();
             };
@@ -289,7 +285,7 @@ namespace Smuxi.Frontend.Gnome
         private void _OnEditButtonPressed()
         {
             EngineAssistant assistant = new EngineAssistant(
-                this,
+                Parent,
                 Frontend.FrontendConfig,
                 _SelectedEngine
             );
@@ -298,7 +294,7 @@ namespace Smuxi.Frontend.Gnome
 
                 // Restart the Dialog
                 // HACK: holy shit, please refactor this mess!
-                EngineManagerDialog dialog = new EngineManagerDialog(_EngineManager);
+                var dialog = new EngineManagerDialog(Parent, _EngineManager);
                 dialog.Run();
                 dialog.Destroy();
             };
@@ -307,7 +303,7 @@ namespace Smuxi.Frontend.Gnome
                 
                 // Restart the Dialog
                 // HACK: holy shit, please refactor this mess!
-                EngineManagerDialog dialog = new EngineManagerDialog(_EngineManager);
+                var dialog = new EngineManagerDialog(Parent, _EngineManager);
                 dialog.Run();
                 dialog.Destroy();
             };
diff --git a/src/Frontend-GNOME/Entry.cs b/src/Frontend-GNOME/Entry.cs
index de3f18a..6258c69 100644
--- a/src/Frontend-GNOME/Entry.cs
+++ b/src/Frontend-GNOME/Entry.cs
@@ -656,6 +656,12 @@ namespace Smuxi.Frontend.Gnome
                         if (chatView.Name.ToLower() != seachKey) {
                             continue;
                         }
+
+                        if (chatView == currentChat) {
+                            // we don't want to switch to ourselves
+                            continue;
+                        }
+
                         // name matches
                         // let's see if there is an exact match, if so, take it
                         if ((chatView.GetType() == currentChat.GetType()) &&
diff --git a/src/Frontend-GNOME/Frontend.cs b/src/Frontend-GNOME/Frontend.cs
index 2dd1234..eb9b7ee 100644
--- a/src/Frontend-GNOME/Frontend.cs
+++ b/src/Frontend-GNOME/Frontend.cs
@@ -598,7 +598,13 @@ namespace Smuxi.Frontend.Gnome
                 });
                 return;
             }
-            
+
+            if (ex is NotImplementedException) {
+                // don't quit on NotImplementedException
+                ShowError(parent, ex);
+                return;
+            }
+
 #if LOG4NET
             _Logger.Error("ShowException(): Exception:", ex);
 #endif
@@ -649,7 +655,8 @@ namespace Smuxi.Frontend.Gnome
         {
             Trace.Call(engine);
             
-            EngineManagerDialog diag = new EngineManagerDialog(_MainWindow.EngineManager);
+            var diag = new EngineManagerDialog(_MainWindow,
+                                               _MainWindow.EngineManager);
             if (!String.IsNullOrEmpty(engine)) {
                 diag.SelectedEngine = engine;
                 // 1 == connect button
diff --git a/src/Frontend-GNOME/IndicateManager.cs b/src/Frontend-GNOME/IndicateManager.cs
index 6f89b0c..928a5c3 100644
--- a/src/Frontend-GNOME/IndicateManager.cs
+++ b/src/Frontend-GNOME/IndicateManager.cs
@@ -189,7 +189,7 @@ namespace Smuxi.Frontend.Gnome
                 return;
             }
 
-            var currentChatView = MainWindow.Notebook.CurrentChatView;
+            var currentChatView = ChatViewManager.CurrentChatView;
             if (currentChatView == null) {
                 return;
             }
@@ -206,7 +206,7 @@ namespace Smuxi.Frontend.Gnome
                 return;
             }
 
-            var currentChatView = MainWindow.Notebook.CurrentChatView;
+            var currentChatView = ChatViewManager.CurrentChatView;
             if (currentChatView == null) {
                 return;
             }
@@ -373,7 +373,7 @@ namespace Smuxi.Frontend.Gnome
             indicator.UserDisplay += delegate {
                 try {
                     MainWindow.PresentWithServerTime();
-                    MainWindow.Notebook.CurrentChatView = chatView;
+                    ChatViewManager.CurrentChatView = chatView;
                     DisposeIndicator(chatView);
                 } catch (Exception ex) {
 #if LOG4NET
@@ -535,7 +535,7 @@ namespace Smuxi.Frontend.Gnome
                     return;
                 }
 
-                MainWindow.Notebook.CurrentChatView = chatView;
+                ChatViewManager.CurrentChatView = chatView;
                 DisposeSource(chatView);
             } catch (Exception ex) {
 #if LOG4NET
diff --git a/src/Frontend-GNOME/MainWindow.cs b/src/Frontend-GNOME/MainWindow.cs
index 376e1a3..358443f 100644
--- a/src/Frontend-GNOME/MainWindow.cs
+++ b/src/Frontend-GNOME/MainWindow.cs
@@ -1,7 +1,7 @@
 /*
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2005-2011 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2005-2013 Mirco Bauer <meebey at meebey.net>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -48,6 +48,7 @@ namespace Smuxi.Frontend.Gnome
         public IFrontendUI UI { get; private set; }
         public Entry Entry { get; private set; }
         public Notebook Notebook { get; private set; }
+        public ChatTreeView ChatTreeView { get; private set; }
         public ChatViewManager ChatViewManager { get; private set; }
         public EngineManager EngineManager { get; private set; }
 #if GTK_SHARP_2_10
@@ -182,12 +183,13 @@ namespace Smuxi.Frontend.Gnome
             FocusOutEvent += OnFocusOutEvent;
             WindowStateEvent += OnWindowStateEvent;
 
-            // TODO: network treeview
+            ChatTreeView = new ChatTreeView();
+
             Notebook = new Notebook();
             Notebook.SwitchPage += OnNotebookSwitchPage;
             Notebook.FocusInEvent += OnNotebookFocusInEvent;
 
-            ChatViewManager = new ChatViewManager(Notebook, null);
+            ChatViewManager = new ChatViewManager(Notebook, ChatTreeView);
             Assembly asm = Assembly.GetExecutingAssembly();
             ChatViewManager.Load(asm);
             ChatViewManager.LoadAll(System.IO.Path.GetDirectoryName(asm.Location),
@@ -247,23 +249,37 @@ namespace Smuxi.Frontend.Gnome
 
             MenuWidget = new MenuWidget(this, ChatViewManager);
 
-            Gtk.VPaned vpane = new Gtk.VPaned();
-            vpane.ButtonPressEvent += (sender, e) => {;
+            var treeviewScrolledWindow = new Gtk.ScrolledWindow() {
+                ShadowType = Gtk.ShadowType.EtchedIn,
+                HscrollbarPolicy = Gtk.PolicyType.Never,
+                VscrollbarPolicy = Gtk.PolicyType.Automatic
+            };
+            treeviewScrolledWindow.Add(ChatTreeView);
+            ChatViewManager.ChatAdded += (sender, e) => {
+                treeviewScrolledWindow.CheckResize();
+            };
+
+            var treeviewPaned = new Gtk.HPaned();
+            treeviewPaned.Pack1(treeviewScrolledWindow, false, false);
+            treeviewPaned.Pack2(Notebook, true, false);
+
+            var entryPaned = new Gtk.VPaned();
+            entryPaned.ButtonPressEvent += (sender, e) => {
                 // reset entry size on double click
                 if (e.Event.Type == Gdk.EventType.TwoButtonPress &&
                     e.Event.Button == 1) {
                     GLib.Timeout.Add(100, delegate {
-                        vpane.Position = -1;
+                        entryPaned.Position = -1;
                         return false;
                     });
                 }
             };
-            vpane.Pack1(Notebook, true, false);
-            vpane.Pack2(entryScrolledWindow, false, false);
+            entryPaned.Pack1(treeviewPaned, true, false);
+            entryPaned.Pack2(entryScrolledWindow, false, false);
 
             Gtk.VBox vbox = new Gtk.VBox();
             vbox.PackStart(MenuWidget, false, false, 0);
-            vbox.PackStart(vpane, true, true, 0);
+            vbox.PackStart(entryPaned, true, true, 0);
 
             NetworkStatusbar = new Gtk.Statusbar();
             NetworkStatusbar.WidthRequest = 300;
@@ -303,6 +319,7 @@ namespace Smuxi.Frontend.Gnome
             NotificationAreaIconMode = mode;
 
             MenuWidget.OpenLogAction.Visible = Frontend.IsLocalEngine;
+            MenuWidget.OpenLogToolAction.Visible = Frontend.IsLocalEngine;
 
 #if GTK_SHARP_2_10
             StatusIconManager.ApplyConfig(userConfig);
@@ -315,6 +332,7 @@ namespace Smuxi.Frontend.Gnome
 #endif
             Entry.ApplyConfig(userConfig);
             Notebook.ApplyConfig(userConfig);
+            ChatTreeView.ApplyConfig(userConfig);
             ChatViewManager.ApplyConfig(userConfig);
             MenuWidget.JoinWidget.ApplyConfig(userConfig);
         }
@@ -329,7 +347,7 @@ namespace Smuxi.Frontend.Gnome
             Trace.Call(chatView, protocolStatus);
 
             if (chatView == null) {
-                chatView = Notebook.CurrentChatView;
+                chatView = ChatViewManager.CurrentChatView;
             }
             if (chatView == null) {
                 return;
@@ -396,11 +414,12 @@ namespace Smuxi.Frontend.Gnome
                     return;
                 }
 
-                ChatView chatView = Notebook.CurrentChatView;
+                var chatView = ChatViewManager.CurrentChatView;
                 if (chatView != null) {
                     // clear activity and highlight
                     chatView.HasHighlight = false;
                     chatView.HasActivity = false;
+                    chatView.HasEvent = false;
                     var lastMsg = chatView.OutputMessageTextView.LastMessage;
                     if (lastMsg == null || Frontend.UseLowBandwidthMode) {
                         return;
@@ -431,7 +450,7 @@ namespace Smuxi.Frontend.Gnome
                     return;
                 }
 
-                var chatView = Notebook.CurrentChatView;
+                var chatView = ChatViewManager.CurrentChatView;
                 if (chatView == null) {
                     return;
                 }
@@ -487,7 +506,7 @@ namespace Smuxi.Frontend.Gnome
         protected virtual void OnNotebookSwitchPage(object sender, EventArgs e)
         {
             try {
-                var chatView = Notebook.CurrentChatView;
+                var chatView = ChatViewManager.CurrentChatView;
                 if (chatView == null) {
                     return;
                 }
@@ -497,8 +516,9 @@ namespace Smuxi.Frontend.Gnome
                 }
                 MenuWidget.FindGroupChatAction.Sensitive = !(chatView is SessionChatView);
                 if (Frontend.IsLocalEngine) {
-                    MenuWidget.OpenLogAction.Sensitive =
-                        File.Exists(chatView.ChatModel.LogFile);
+                    var logExists = File.Exists(chatView.ChatModel.LogFile);
+                    MenuWidget.OpenLogAction.Sensitive = logExists;
+                    MenuWidget.OpenLogToolAction.Sensitive = logExists;
                 }
 
                 // find protocol chat parent and update join bar
@@ -516,10 +536,12 @@ namespace Smuxi.Frontend.Gnome
 
                 // HACK: Gtk.Notebook moves the focus to the child after the
                 // page has been switched, so move the focus back to the entry
-                GLib.Idle.Add(delegate {
-                    Entry.GrabFocus();
-                    return false;
-                });
+                if (!Notebook.IsBrowseModeEnabled) {
+                    GLib.Idle.Add(delegate {
+                        Entry.GrabFocus();
+                        return false;
+                    });
+                }
             } catch (Exception ex) {
                 Frontend.ShowException(this, ex);
             }
@@ -537,6 +559,9 @@ namespace Smuxi.Frontend.Gnome
             Trace.Call(sender, e);
 
             e.ChatView.MessageHighlighted += OnChatViewMessageHighlighted;
+            e.ChatView.StatusChanged += (o, args) => {
+                ChatTreeView.Render(e.ChatView);
+            };
             e.ChatView.OutputMessageTextView.FocusInEvent += delegate {
                 if (CaretMode) {
                     return;
@@ -558,6 +583,8 @@ namespace Smuxi.Frontend.Gnome
             Trace.Call(sender, e);
             
             e.ChatView.MessageHighlighted -= OnChatViewMessageHighlighted;
+
+            UpdateProgressBar();
         }
         
         protected void OnChatViewMessageHighlighted(object sender, ChatViewMessageHighlightedEventArgs e)
diff --git a/src/Frontend-GNOME/Makefile.am b/src/Frontend-GNOME/Makefile.am
index bad9e01..9ea22b9 100644
--- a/src/Frontend-GNOME/Makefile.am
+++ b/src/Frontend-GNOME/Makefile.am
@@ -1,5 +1,6 @@
 TARGET_DIR = $(top_builddir)/bin/$(PROFILE)
-EXTRA_DIST = $(WIN_ICON) $(DESKTOP_FILE).in
+EXTRA_DIST = $(WIN_ICON) $(DESKTOP_FILE).in $(man_MANS)
+man_MANS = smuxi-frontend-gnome.1
 
 ICON_NAME = smuxi-frontend-gnome
 ICON_NAME_PNG = $(ICON_NAME).png
@@ -134,6 +135,7 @@ FILES = \
 	PangoTools.cs \
 	Preferences/ServerListView.cs \
 	Preferences/PreferencesDialog.cs \
+	Views/ChatTreeView.cs \
 	Views/JoinWidget.cs \
 	Views/MenuWidget.cs \
 	Views/MessageTextView.cs \
diff --git a/src/Frontend-GNOME/Makefile.in b/src/Frontend-GNOME/Makefile.in
index 3a06d01..995452e 100644
--- a/src/Frontend-GNOME/Makefile.in
+++ b/src/Frontend-GNOME/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -127,10 +127,11 @@ am__uninstall_files_from_dir = { \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" \
-	"$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icon128dir)" \
-	"$(DESTDIR)$(icon16dir)" "$(DESTDIR)$(icon22dir)" \
-	"$(DESTDIR)$(icon24dir)" "$(DESTDIR)$(icon256dir)" \
-	"$(DESTDIR)$(icon32dir)" "$(DESTDIR)$(icon48dir)" \
+	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" \
+	"$(DESTDIR)$(icon128dir)" "$(DESTDIR)$(icon16dir)" \
+	"$(DESTDIR)$(icon22dir)" "$(DESTDIR)$(icon24dir)" \
+	"$(DESTDIR)$(icon256dir)" "$(DESTDIR)$(icon32dir)" \
+	"$(DESTDIR)$(icon48dir)" \
 	"$(DESTDIR)$(linuxdesktopapplicationsdir)" \
 	"$(DESTDIR)$(linuxpkgconfigdir)" \
 	"$(DESTDIR)$(programfilesdir)" \
@@ -155,6 +156,9 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
 DATA = $(desktop_DATA) $(icon128_DATA) $(icon16_DATA) $(icon22_DATA) \
 	$(icon24_DATA) $(icon256_DATA) $(icon32_DATA) $(icon48_DATA) \
 	$(linuxdesktopapplications_DATA) $(linuxpkgconfig_DATA) \
@@ -212,6 +216,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -381,10 +386,11 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 twitter_api_key = @twitter_api_key@
 TARGET_DIR = $(top_builddir)/bin/$(PROFILE)
-EXTRA_DIST = $(WIN_ICON) $(DESKTOP_FILE).in $(build_sources) \
-	$(build_resx_files) $(build_others_files) \
+EXTRA_DIST = $(WIN_ICON) $(DESKTOP_FILE).in $(man_MANS) \
+	$(build_sources) $(build_resx_files) $(build_others_files) \
 	$(ASSEMBLY_WRAPPER_IN) $(EXTRAS) $(DATA_FILES) \
 	$(build_culture_res_files)
+man_MANS = smuxi-frontend-gnome.1
 ICON_NAME = smuxi-frontend-gnome
 ICON_NAME_PNG = $(ICON_NAME).png
 ICON_SVG = $(ICON_NAME).svg
@@ -483,6 +489,7 @@ FILES = \
 	PangoTools.cs \
 	Preferences/ServerListView.cs \
 	Preferences/PreferencesDialog.cs \
+	Views/ChatTreeView.cs \
 	Views/JoinWidget.cs \
 	Views/MenuWidget.cs \
 	Views/MessageTextView.cs \
@@ -752,6 +759,49 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
+install-man1: $(man_MANS)
+	@$(NORMAL_INSTALL)
+	@list1=''; \
+	list2='$(man_MANS)'; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 install-desktopDATA: $(desktop_DATA)
 	@$(NORMAL_INSTALL)
 	@list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
@@ -1064,9 +1114,9 @@ distdir: $(DISTFILES)
 	done
 check-am: all-am
 check: check-am
-all-am: Makefile $(SCRIPTS) $(DATA)
+all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icon128dir)" "$(DESTDIR)$(icon16dir)" "$(DESTDIR)$(icon22dir)" "$(DESTDIR)$(icon24dir)" "$(DESTDIR)$(icon256dir)" "$(DESTDIR)$(icon32dir)" "$(DESTDIR)$(icon48dir)" "$(DESTDIR)$(linuxdesktopapplicationsdir)" "$(DESTDIR)$(linuxpkgconfigdir)" "$(DESTDIR)$(programfilesdir)" "$(DESTDIR)$(programfilesiconsdir)" "$(DESTDIR)$(svgicondir)"; do \
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icon128dir)" "$(DESTDIR)$(icon16dir)" "$(DESTDIR)$(icon22dir)" "$(DESTDIR)$(icon24dir)" "$(DESTDIR)$(icon256dir)" "$(DESTDIR)$(icon32dir)" "$(DESTDIR)$(icon48dir)" "$(DESTDIR)$(linuxdesktopapplicationsdir)" "$(DESTDIR)$(linuxpkgconfigdir)" "$(DESTDIR)$(programfilesdir)" "$(DESTDIR)$(programfilesiconsdir)" "$(DESTDIR)$(svgicondir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -1125,7 +1175,7 @@ install-data-am: install-desktopDATA install-icon128DATA \
 	install-icon16DATA install-icon22DATA install-icon24DATA \
 	install-icon256DATA install-icon32DATA install-icon48DATA \
 	install-linuxdesktopapplicationsDATA \
-	install-linuxpkgconfigDATA install-pkgappSCRIPTS \
+	install-linuxpkgconfigDATA install-man install-pkgappSCRIPTS \
 	install-programfilesDATA install-programfilesiconsDATA \
 	install-svgiconDATA
 	@$(NORMAL_INSTALL)
@@ -1144,7 +1194,7 @@ install-info: install-info-am
 
 install-info-am:
 
-install-man:
+install-man: install-man1
 
 install-pdf: install-pdf-am
 
@@ -1177,11 +1227,13 @@ uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \
 	uninstall-icon22DATA uninstall-icon24DATA \
 	uninstall-icon256DATA uninstall-icon32DATA \
 	uninstall-icon48DATA uninstall-linuxdesktopapplicationsDATA \
-	uninstall-linuxpkgconfigDATA uninstall-pkgappSCRIPTS \
-	uninstall-programfilesDATA uninstall-programfilesiconsDATA \
-	uninstall-svgiconDATA
+	uninstall-linuxpkgconfigDATA uninstall-man \
+	uninstall-pkgappSCRIPTS uninstall-programfilesDATA \
+	uninstall-programfilesiconsDATA uninstall-svgiconDATA
 	@$(NORMAL_INSTALL)
 	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+uninstall-man: uninstall-man1
+
 .MAKE: install-am install-data-am install-strip uninstall-am
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
@@ -1195,20 +1247,21 @@ uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \
 	install-icon256DATA install-icon32DATA install-icon48DATA \
 	install-info install-info-am \
 	install-linuxdesktopapplicationsDATA \
-	install-linuxpkgconfigDATA install-man install-pdf \
-	install-pdf-am install-pkgappSCRIPTS install-programfilesDATA \
-	install-programfilesiconsDATA install-ps install-ps-am \
-	install-strip install-svgiconDATA installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags-am uninstall uninstall-am uninstall-binSCRIPTS \
-	uninstall-desktopDATA uninstall-hook uninstall-icon128DATA \
-	uninstall-icon16DATA uninstall-icon22DATA uninstall-icon24DATA \
+	install-linuxpkgconfigDATA install-man install-man1 \
+	install-pdf install-pdf-am install-pkgappSCRIPTS \
+	install-programfilesDATA install-programfilesiconsDATA \
+	install-ps install-ps-am install-strip install-svgiconDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-binSCRIPTS uninstall-desktopDATA \
+	uninstall-hook uninstall-icon128DATA uninstall-icon16DATA \
+	uninstall-icon22DATA uninstall-icon24DATA \
 	uninstall-icon256DATA uninstall-icon32DATA \
 	uninstall-icon48DATA uninstall-linuxdesktopapplicationsDATA \
-	uninstall-linuxpkgconfigDATA uninstall-pkgappSCRIPTS \
-	uninstall-programfilesDATA uninstall-programfilesiconsDATA \
-	uninstall-svgiconDATA
+	uninstall-linuxpkgconfigDATA uninstall-man uninstall-man1 \
+	uninstall-pkgappSCRIPTS uninstall-programfilesDATA \
+	uninstall-programfilesiconsDATA uninstall-svgiconDATA
 
 
 all: $(ASSEMBLY) $(PROGRAMFILES) $(LINUX_DESKTOPAPPLICATIONS) $(BINARIES)
diff --git a/src/Frontend-GNOME/Notebook.cs b/src/Frontend-GNOME/Notebook.cs
index 319e273..4028aa2 100644
--- a/src/Frontend-GNOME/Notebook.cs
+++ b/src/Frontend-GNOME/Notebook.cs
@@ -109,6 +109,7 @@ namespace Smuxi.Frontend.Gnome
                     ShowTabs = false;
                     break;
             }
+            ShowTabs = false;
             
             // TODO: Homogeneous = true;
         }
@@ -219,6 +220,7 @@ namespace Smuxi.Frontend.Gnome
             // clear activity and highlight
             chatView.HasHighlight = false;
             chatView.HasActivity = false;
+            chatView.HasEvent = false;
             var lastMsg = chatView.OutputMessageTextView.LastMessage;
 
             var method = Trace.GetMethodBase();
@@ -238,8 +240,7 @@ namespace Smuxi.Frontend.Gnome
                     // OPT-TODO: we could use here a TaskStack instead which
                     // would make sure only the newest task gets executed
                     // instead of every task in the FIFO sequence!
-                    // REMOTING CALL 1
-                    IProtocolManager nmanager = chatModel.ProtocolManager;
+                    var nmanager = chatView.ProtocolManager;
 
                     // TODO: only set the protocol manager and update network
                     // status if the protocol manager differs from the old one
diff --git a/src/Frontend-GNOME/NotifyManager.cs b/src/Frontend-GNOME/NotifyManager.cs
index d8680cc..3360bc1 100644
--- a/src/Frontend-GNOME/NotifyManager.cs
+++ b/src/Frontend-GNOME/NotifyManager.cs
@@ -219,11 +219,13 @@ namespace Smuxi.Frontend.Gnome
             if (!IsEnabled ||
                 e.Message.TimeStamp <= chatView.SyncedLastSeenHighlight ||
                 (MainWindow.HasToplevelFocus &&
-                 chatView.LabelWidget.IsDrawable)) {
+                 (ChatViewManager.CurrentChatView == chatView ||
+                  MainWindow.ChatTreeView.IsVisible(chatView)))) {
                 // no need to show a notification for:
                 // - disabled chats
                 // - seen highlights
-                // - main window has focus and the chat tab is visible
+                // - main window has focus and the chat is active or the chat
+                //   row is visible
                 return;
             }
 
@@ -336,7 +338,7 @@ namespace Smuxi.Frontend.Gnome
                 notification.AddAction("show", _("Show"), delegate {
                     try {
                         MainWindow.PresentWithServerTime();
-                        MainWindow.Notebook.CurrentChatView = chatView;
+                        ChatViewManager.CurrentChatView = chatView;
                         notification.Close();
                     } catch (Exception ex) {
 #if LOG4NET
@@ -394,7 +396,7 @@ namespace Smuxi.Frontend.Gnome
                 return;
             }
 
-            var currentChatView = MainWindow.Notebook.CurrentChatView;
+            var currentChatView = ChatViewManager.CurrentChatView;
             if (currentChatView == null) {
                 return;
             }
@@ -409,7 +411,7 @@ namespace Smuxi.Frontend.Gnome
                 return;
             }
 
-            var currentChatView = MainWindow.Notebook.CurrentChatView;
+            var currentChatView = ChatViewManager.CurrentChatView;
             if (currentChatView == null) {
                 return;
             }
diff --git a/src/Frontend-GNOME/Preferences/PreferencesDialog.cs b/src/Frontend-GNOME/Preferences/PreferencesDialog.cs
index 25c3bfb..c59402c 100644
--- a/src/Frontend-GNOME/Preferences/PreferencesDialog.cs
+++ b/src/Frontend-GNOME/Preferences/PreferencesDialog.cs
@@ -356,7 +356,15 @@ namespace Smuxi.Frontend.Gnome
                     if (enc.EncodingName.Contains(" (")) {
                         encodingName = encodingName.Substring(0, enc.EncodingName.IndexOf(" ("));
                     }
-                    store.AppendValues(enc.BodyName.ToUpper() + " - " + encodingName, enc.BodyName.ToUpper());
+                    var normalizedBodyName = enc.BodyName.ToUpper();
+                    if (normalizedBodyName.StartsWith("KOI8")) {
+                        // this is the only non-ISO encoding that doesn't use
+                        // WINDOWS as prefix and confuses users
+                        normalizedBodyName = String.Format("WINDOWS-{0} / {1}",
+                                                           enc.CodePage,
+                                                           normalizedBodyName);
+                    }
+                    store.AppendValues(normalizedBodyName + " - " + encodingName, enc.BodyName.ToUpper());
                 } catch (NotSupportedException) {
                 }
             }
diff --git a/src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs b/src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs
index 1c56fea..476099f 100644
--- a/src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs
+++ b/src/Frontend-GNOME/Views/Assistants/Engine/EngineAssistant.cs
@@ -1,13 +1,7 @@
 /*
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- *
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2009 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2009, 2011, 2013 Mirco Bauer <meebey at meebey.net>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -67,7 +61,7 @@ namespace Smuxi.Frontend.Gnome
 
             TransientFor = parent;
             SetDefaultSize(640, 480);
-            SetPosition(Gtk.WindowPosition.CenterOnParent);
+            SetPosition(Gtk.WindowPosition.CenterAlways);
             Title = _("Engine Assistant - Smuxi");
 
             Apply += OnApply;
diff --git a/src/Frontend-GNOME/Views/ChatTreeView.cs b/src/Frontend-GNOME/Views/ChatTreeView.cs
new file mode 100644
index 0000000..fc9c558
--- /dev/null
+++ b/src/Frontend-GNOME/Views/ChatTreeView.cs
@@ -0,0 +1,454 @@
+// Smuxi - Smart MUltipleXed Irc
+//
+// Copyright (c) 2013 Mirco Bauer <meebey at meebey.net>
+//
+// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+using System;
+using Smuxi.Common;
+using Smuxi.Engine;
+
+namespace Smuxi.Frontend.Gnome
+{
+    public class ChatTreeView : Gtk.TreeView
+    {
+        public Gtk.TreeStore TreeStore { get; private set; }
+        ThemeSettings ThemeSettings { get; set; }
+        int f_CurrentChatNumber;
+
+        public ChatView CurrentChatView {
+            get {
+                Gtk.TreeIter iter;
+                if (!Selection.GetSelected(out iter)) {
+                    return null;
+                }
+                return (ChatView) TreeStore.GetValue(iter, 0);
+            }
+            set {
+                Gtk.TreeIter iter;
+                if (value == null) {
+                    TreeStore.GetIterFirst(out iter);
+                } else {
+                    iter = FindChatIter(value);
+                }
+                var path = TreeStore.GetPath(iter);
+                // we have to ensure we can make the new selection
+                ExpandToPath(path);
+                Selection.SelectPath(path);
+            }
+        }
+
+        public int CurrentChatNumber {
+            get {
+                return f_CurrentChatNumber;
+            }
+            set {
+                var path = GetPath(value);
+                if (path == null) {
+                    return;
+                }
+                // we have to ensure we can make the new selection
+                ExpandToPath(path);
+                Selection.SelectPath(path);
+            }
+        }
+
+        public ChatTreeView()
+        {
+            ThemeSettings = new ThemeSettings();
+            TreeStore = new Gtk.TreeStore(typeof(ChatView));
+            TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending);
+            TreeStore.SetSortFunc(0, SortTreeStore);
+
+            Model = TreeStore;
+            HeadersVisible = false;
+            BorderWidth = 0;
+            ShowExpanders = false;
+            LevelIndentation = 12;
+            Selection.Mode = Gtk.SelectionMode.Browse;
+            Selection.Changed += (sender, e) => {
+                Gtk.TreeIter iter;
+                if (!Selection.GetSelected(out iter) &&
+                    TreeStore.GetIterFirst(out iter)) {
+                    Selection.SelectIter(iter);
+                    return;
+                }
+                var path = TreeStore.GetPath(iter);
+                f_CurrentChatNumber = GetRowNumber(path);
+            };
+
+            var iconRenderer = new Gtk.CellRendererPixbuf();
+            var column = new Gtk.TreeViewColumn(null, iconRenderer);
+            column.Spacing = 0;
+            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
+            column.SetCellDataFunc(iconRenderer, new Gtk.TreeCellDataFunc(RenderChatViewIcon));
+            AppendColumn(column);
+
+            var cellRenderer = new Gtk.CellRendererText();
+            column = new Gtk.TreeViewColumn(null, cellRenderer);
+            column.Spacing = 0;
+            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
+            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewName));
+            AppendColumn(column);
+        }
+
+        public virtual void Append(ChatView chatView)
+        {
+            if (chatView == null) {
+                throw new ArgumentNullException("chatView");
+            }
+
+            if (chatView is SessionChatView ||
+                chatView is ProtocolChatView) {
+                // top level chats
+                TreeStore.AppendValues(chatView);
+                ReparentOrphans();
+                if (TreeStore.IterNChildren() == 1) {
+                    // first node, usualy Smuxi chat
+                    CurrentChatView = chatView;
+                }
+            } else {
+                // childs with parents, hopefully
+                var parentIter = FindProtocolChatIter(chatView);
+                if (TreeStore.IterIsValid(parentIter)) {
+                    TreeStore.AppendValues(parentIter, chatView);
+                    var path = TreeStore.GetPath(parentIter);
+                    ExpandRow(path, true);
+                } else {
+                    // parent chat doesn't exist yet, thus it has to become
+                    // a top level chat for now and re-parent later
+                    TreeStore.AppendValues(chatView);
+                }
+            }
+        }
+
+        public virtual void Remove(ChatView chatView)
+        {
+            if (chatView == null) {
+                throw new ArgumentNullException("chatView");
+            }
+
+            var iter = FindChatIter(chatView);
+            if (!TreeStore.IterIsValid(iter)) {
+                return;
+            }
+            TreeStore.Remove(ref iter);
+        }
+
+        public virtual void Render(ChatView chatView)
+        {
+            Trace.Call(chatView);
+
+            if (chatView == null) {
+                throw new ArgumentNullException("chatView");
+            }
+
+            var iter = FindChatIter(chatView);
+            //var path = TreeStore.GetPath(iter);
+            //TreeStore.EmitRowChanged(path, iter);
+            // HACK: this emits row_changed _and_ sort_iter_changed and there is
+            // no other public API in GTK+ to trigger a resort of a modified
+            // value in the tree view :/
+            TreeStore.SetValue(iter, 0, chatView);
+        }
+
+        public virtual bool IsVisible(ChatView chatView)
+        {
+            if (chatView == null) {
+                throw new ArgumentNullException("chatView");
+            }
+
+            Gtk.TreePath visibleStart, visibleEnd;
+            GetVisibleRange(out visibleStart, out visibleEnd);
+            var chatIter = FindChatIter(chatView);
+            var chatPath = TreeStore.GetPath(chatIter);
+            // we ignore 0 on purpose, say if a few pixels of a row are returned
+            // as visible by GetVisibleRange() that is not good enough for us
+            return visibleStart.Compare(chatPath) <= 0 &&
+                   visibleEnd.Compare(chatPath) >= 0;
+        }
+
+        public virtual void ApplyConfig(UserConfig config)
+        {
+            Trace.Call(config);
+
+            if (config == null) {
+                throw new ArgumentNullException("config");
+            }
+
+            ThemeSettings = new ThemeSettings(config);
+            if (ThemeSettings.BackgroundColor == null) {
+                ModifyBase(Gtk.StateType.Normal);
+            } else {
+                ModifyBase(Gtk.StateType.Normal, ThemeSettings.BackgroundColor.Value);
+            }
+            if (ThemeSettings.ForegroundColor == null) {
+                ModifyText(Gtk.StateType.Normal);
+            } else {
+                ModifyText(Gtk.StateType.Normal, ThemeSettings.ForegroundColor.Value);
+            }
+            ModifyFont(ThemeSettings.FontDescription);
+        }
+
+        protected virtual void RenderChatViewIcon(Gtk.TreeViewColumn column,
+                                                  Gtk.CellRenderer cellr,
+                                                  Gtk.TreeModel model, Gtk.TreeIter iter)
+        {
+            var chat = (ChatView) model.GetValue(iter, 0);
+            var renderer = (Gtk.CellRendererPixbuf) cellr;
+
+            switch (chat.TabImage.StorageType) {
+                case Gtk.ImageType.Pixbuf:
+                    renderer.Pixbuf = chat.TabImage.Pixbuf;
+                    break;
+                case Gtk.ImageType.Stock:
+                    renderer.StockId = chat.TabImage.Stock;
+                    break;
+                default:
+                    renderer.Pixbuf = null;
+                    break;
+            }
+        }
+
+        protected virtual void RenderChatViewName(Gtk.TreeViewColumn column,
+                                                  Gtk.CellRenderer cellr,
+                                                  Gtk.TreeModel model, Gtk.TreeIter iter)
+        {
+            var chat = (ChatView) model.GetValue(iter, 0);
+            var renderer = (Gtk.CellRendererText) cellr;
+
+            Gdk.Color color;
+            string text;
+            if (chat.HighlightCount > 1) {
+                color = ThemeSettings.HighlightColor;
+                text = String.Format("{0} ({1})",
+                                     chat.Name,
+                                     chat.HighlightCount.ToString());
+            } else if (chat.HighlightCount == 1) {
+                color = ThemeSettings.HighlightColor;
+                text = chat.Name;
+            } else if (chat.HasActivity) {
+                color = ThemeSettings.ActivityColor;
+                text = chat.Name;
+            } else if (chat.HasEvent) {
+                color = ThemeSettings.EventColor;
+                text = chat.Name;
+            } else {
+                // no activity
+                color = ThemeSettings.NoActivityColor;
+                text = chat.Name;
+            }
+
+            var textColor = TextColorTools.GetBestTextColor(
+                ColorConverter.GetTextColor(color),
+                ColorConverter.GetTextColor(
+                    Gtk.Rc.GetStyle(this).Base(Gtk.StateType.Normal)
+                ), TextColorContrast.High
+            );
+            renderer.Markup = String.Format(
+                "<span foreground=\"{0}\">{1}</span>",
+                GLib.Markup.EscapeText(textColor.ToString()),
+                GLib.Markup.EscapeText(text)
+            );
+        }
+
+        protected virtual int SortTreeStore(Gtk.TreeModel model,
+                                            Gtk.TreeIter iter1,
+                                            Gtk.TreeIter iter2)
+        {
+            var chat1 = (ChatView) model.GetValue(iter1, 0);
+            var chat2 = (ChatView) model.GetValue(iter2, 0);
+            // Smuxi is always the first item
+            if (chat1 is SessionChatView &&
+                chat2 is SessionChatView) {
+                return 0;
+            } else if (chat1 is SessionChatView) {
+                return -1;
+            } else if (chat2 is SessionChatView) {
+                return 1;
+            } else if (chat1 is GroupChatView &&
+                       chat2 is GroupChatView) {
+                // let Name decide
+            }  else if (chat1 is GroupChatView) {
+                return -1;
+            }  else if (chat2 is GroupChatView) {
+                return 1;
+            }
+            return chat1.Name.CompareTo(chat2.Name);
+        }
+
+        protected override bool OnKeyPressEvent(Gdk.EventKey @event)
+        {
+            if ((@event.State & Gdk.ModifierType.Mod1Mask) != 0 ||
+                (@event.State & Gdk.ModifierType.ControlMask) != 0 ||
+                (@event.State & Gdk.ModifierType.ShiftMask) != 0) {
+                // alt, ctrl or shift pushed, returning
+                return base.OnKeyPressEvent(@event);
+            }
+
+            if (CurrentChatView is SessionChatView) {
+                // no menu for Smuxi chat
+                return base.OnKeyPressEvent(@event);
+            }
+
+            if (@event.Key == Gdk.Key.Menu &&
+                Selection.CountSelectedRows() > 0) {
+                CurrentChatView.TabMenu.Popup(null, null, null, 0, @event.Time);
+                return true;
+            }
+
+            return base.OnKeyPressEvent(@event);
+        }
+
+        protected override bool OnButtonReleaseEvent(Gdk.EventButton @event)
+        {
+            Trace.Call(@event);
+
+            if (CurrentChatView is SessionChatView) {
+                // no menu for Smuxi chat
+                return base.OnButtonReleaseEvent(@event);
+            }
+
+            if (@event.Button == 3 && Selection.CountSelectedRows() > 0) {
+                CurrentChatView.TabMenu.Popup(null, null, null, 0, @event.Time);
+                return true;
+            }
+
+            return base.OnButtonReleaseEvent(@event);
+        }
+
+        void ReparentOrphans()
+        {
+            Gtk.TreeIter iter;
+            Gtk.TreeIter parentIter = Gtk.TreeIter.Zero;
+            TreeStore.GetIterFirst(out iter);
+            do {
+                var orphan = (ChatView) TreeStore.GetValue(iter, 0);
+                if (orphan is SessionChatView ||
+                    orphan is ProtocolChatView) {
+                    continue;
+                }
+                if (TreeStore.IterParent(out parentIter, iter)) {
+                    // already has an parent
+                    continue;
+                }
+                // no parent, let's find one!
+                parentIter = FindProtocolChatIter(orphan);
+                if (!TreeStore.IterIsValid(parentIter)) {
+                    continue;
+                }
+                // found a parent \o/
+                TreeStore.Remove(ref iter);
+                TreeStore.AppendValues(parentIter, orphan);
+                var parentPath = TreeStore.GetPath(parentIter);
+                ExpandRow(parentPath, true);
+                // reset iter to first as we changed the store and thus can't
+                // continue the iteration
+                TreeStore.GetIterFirst(out iter);
+            } while (TreeStore.IterNext(ref iter));
+        }
+
+        Gtk.TreeIter FindProtocolChatIter(ChatView child)
+        {
+            Gtk.TreeIter iter;
+            Gtk.TreeIter parentIter = Gtk.TreeIter.Zero;
+            TreeStore.GetIterFirst(out iter);
+            do {
+                var candidate = (ChatView) TreeStore.GetValue(iter, 0);
+                if (!(candidate is ProtocolChatView) ||
+                    candidate.ProtocolManager == null) {
+                    continue;
+                }
+                if (child.ProtocolManager != candidate.ProtocolManager) {
+                    continue;
+                }
+                parentIter = iter;
+                break;
+            } while (TreeStore.IterNext(ref iter));
+            return parentIter;
+        }
+
+        Gtk.TreeIter FindChatIter(ChatView view)
+        {
+            Gtk.TreeIter chatIter = Gtk.TreeIter.Zero;
+            TreeStore.Foreach((model, path, iter) => {
+                var candidate = (ChatView) model.GetValue(iter, 0);
+                if (candidate == view) {
+                    chatIter = iter;
+                    return true;
+                }
+                return false;
+            });
+            return chatIter;
+        }
+
+        int GetRowNumber(Gtk.TreePath path)
+        {
+            Gtk.TreeIter iter;
+            if (!TreeStore.GetIter(out iter, path)) {
+                // invalid path
+                return -1;
+            }
+
+            Gtk.TreeIter walkerIter;
+            TreeStore.GetIterFirst(out walkerIter);
+            var walker = TreeStore.GetPath(walkerIter);
+            for (var i = 0; TreeStore.GetIter(out walkerIter, walker); i++) {
+                if (walker.Compare(path) == 0) {
+                    return i;
+                }
+
+                if (TreeStore.IterHasChild(walkerIter)) {
+                    walker.Down();
+                } else {
+                    walker.Next();
+
+                    if (!TreeStore.GetIter(out walkerIter, walker)) {
+                        // invalid path: reached last row
+                        walker.Up();
+                        walker.Next();
+                    }
+                }
+            }
+            return -1;
+        }
+
+        Gtk.TreePath GetPath(int rowNumber)
+        {
+            Gtk.TreeIter iter;
+            TreeStore.GetIterFirst(out iter);
+            var path = TreeStore.GetPath(iter);
+            // TODO: clamp upper limit
+            int i;
+            for (i = 0; rowNumber >= 0 && i < rowNumber; i++) {
+                TreeStore.GetIter(out iter, path);
+                if (TreeStore.IterHasChild(iter)) {
+                    path.Down();
+                } else {
+                    path.Next();
+
+                    TreeStore.GetIter(out iter, path);
+                    if (!TreeStore.IterIsValid(iter)) {
+                        // reached last row
+                        path.Up();
+                        path.Next();
+                    }
+                }
+            }
+            return path;
+        }
+    }
+}
diff --git a/src/Frontend-GNOME/Views/Chats/ChatView.cs b/src/Frontend-GNOME/Views/Chats/ChatView.cs
index 32828d6..06619b8 100644
--- a/src/Frontend-GNOME/Views/Chats/ChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/ChatView.cs
@@ -40,7 +40,7 @@ namespace Smuxi.Frontend.Gnome
         public    int                Position { get; internal set; }
         private   ChatModel          _ChatModel;
         private   bool               _HasHighlight;
-        private   int                HighlightCount { get; set; }
+        public    int                HighlightCount { get; private set; }
         private   bool               _HasActivity;
         private   bool               _HasEvent;
         private   bool               _IsSynced;
@@ -58,10 +58,12 @@ namespace Smuxi.Frontend.Gnome
         protected string             SyncedName { get; set; }
         public    IProtocolManager   ProtocolManager { get; set; }
         bool                         UseLowBandwidthMode { get; set; }
-        protected Gtk.Image          TabImage { get; set; }
+        public Gtk.Image TabImage { get; protected set; }
         bool                         IsAutoScrolling { get; set; }
         Gtk.ImageMenuItem  CloseItem { get; set; }
 
+        public event EventHandler<EventArgs> StatusChanged;
+
         public ChatModel ChatModel {
             get {
                 return _ChatModel;
@@ -75,6 +77,8 @@ namespace Smuxi.Frontend.Gnome
             set {
                 base.Name = value;
                 _TabLabel.Text = value;
+
+                OnStatusChanged(EventArgs.Empty);
             }
         }
 
@@ -85,7 +89,7 @@ namespace Smuxi.Frontend.Gnome
                 // object?!?
                 return Frontend.MainWindow.HasToplevelFocus &&
                         Object.ReferenceEquals(
-                            Frontend.MainWindow.Notebook.CurrentChatView,
+                            Frontend.MainWindow.ChatViewManager.CurrentChatView,
                             this
                         );
             }
@@ -96,13 +100,20 @@ namespace Smuxi.Frontend.Gnome
                 return _HasHighlight;
             }
             set {
-                _HasHighlight = value;
-                HighlightCount++;
-
-                if (!value) {
+                if (value) {
+                    _HasHighlight = value;
+                    HighlightCount++;
+                    OnStatusChanged(EventArgs.Empty);
+                } else {
+                    if (_HasHighlight == value) {
+                        // nothing to update
+                        return;
+                    }
+                    _HasHighlight = value;
                     // clear highlight with "no activity"
                     HasActivity = false;
                     HighlightCount = 0;
+                    OnStatusChanged(EventArgs.Empty);
                     return;
                 }
 
@@ -136,11 +147,12 @@ namespace Smuxi.Frontend.Gnome
                 return _HasActivity;
             }
             set {
-                if (value && _HasActivity == value) {
+                if (_HasActivity == value) {
                     // nothing to update
                     return;
                 }
                 _HasActivity = value;
+                OnStatusChanged(EventArgs.Empty);
 
                 if (HasHighlight) {
                     // don't show activity if there is a highlight active
@@ -172,7 +184,12 @@ namespace Smuxi.Frontend.Gnome
                 return _HasEvent;
             }
             set {
+                if (_HasEvent == value) {
+                    // nothing to update
+                    return;
+                }
                 _HasEvent = value;
+                OnStatusChanged(EventArgs.Empty);
 
                 if (HasHighlight) {
                     return;
@@ -249,7 +266,7 @@ namespace Smuxi.Frontend.Gnome
             }
         }
 
-        protected Gtk.Menu TabMenu {
+        public Gtk.Menu TabMenu {
             get {
                 return _TabMenu;
             }
@@ -332,6 +349,10 @@ namespace Smuxi.Frontend.Gnome
             _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent;
             _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent;
         }
+
+        protected ChatView(IntPtr handle) : base(handle)
+        {
+        }
         
         ~ChatView()
         {
@@ -481,6 +502,7 @@ namespace Smuxi.Frontend.Gnome
 
             GLib.Idle.Add(delegate {
                 TabImage.SetFromStock(Gtk.Stock.Refresh, Gtk.IconSize.Menu);
+                OnStatusChanged(EventArgs.Empty);
                 return false;
             });
 
@@ -539,6 +561,7 @@ namespace Smuxi.Frontend.Gnome
             // show all chats with message activity after the frontend connect
             if (!HasHighlight) {
                 HasActivity = false;
+                HasEvent = false;
             }
 
             // let the user know at which position new messages start
@@ -546,6 +569,7 @@ namespace Smuxi.Frontend.Gnome
 
             // reset tab icon to normal
             TabImage.Pixbuf = DefaultTabImage.Pixbuf;
+            OnStatusChanged(EventArgs.Empty);
 
             SyncedMessages = null;
             _IsSynced = true;
@@ -553,6 +577,21 @@ namespace Smuxi.Frontend.Gnome
         
         public virtual void AddMessage(MessageModel msg)
         {
+            switch (msg.MessageType) {
+                case MessageType.ChatNameChanged:
+                    ThreadPool.QueueUserWorkItem(delegate {
+                        try {
+                            // REMOTING CALL
+                            var newname = ChatModel.Name;
+                            Gtk.Application.Invoke(delegate {
+                                Name = newname;
+                            });
+                        } catch (Exception ex) {
+                            Frontend.ShowException(ex);
+                        }
+                    });
+                    return;
+            }
             _OutputMessageTextView.AddMessage(msg);
         }
         
@@ -638,9 +677,7 @@ namespace Smuxi.Frontend.Gnome
         
         protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e)
         {
-            // HACK: out of scope?
-            // probably we should use the ChatViewManager instead?
-            if (Frontend.MainWindow.Notebook.CurrentChatView != this) {
+            if (!IsActive) {
                 switch (e.Message.MessageType) {
                     case MessageType.Normal:
                         HasActivity = true;
@@ -803,6 +840,13 @@ namespace Smuxi.Frontend.Gnome
 #endif
         }
 
+        protected virtual void OnStatusChanged(EventArgs e)
+        {
+            if (StatusChanged != null) {
+                StatusChanged(this, e);
+            }
+        }
+
         void OnVadjustmentValueChanged(object sender, EventArgs e)
         {
             CheckAutoScroll();
diff --git a/src/Frontend-GNOME/Views/Chats/GroupChatView.cs b/src/Frontend-GNOME/Views/Chats/GroupChatView.cs
index e3d94b7..8b2c4a3 100644
--- a/src/Frontend-GNOME/Views/Chats/GroupChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/GroupChatView.cs
@@ -137,6 +137,8 @@ namespace Smuxi.Frontend.Gnome
                 }
             };
 
+            Gtk.TreeView tv = new Gtk.TreeView();
+            _PersonTreeView = tv;
             Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
             PersonScrolledWindow = sw;
             sw.HscrollbarPolicy = Gtk.PolicyType.Never;
@@ -164,8 +166,6 @@ namespace Smuxi.Frontend.Gnome
                 args.Requisition = bestSize;
             };
 
-            Gtk.TreeView tv = new Gtk.TreeView();
-            _PersonTreeView = tv;
             //tv.CanFocus = false;
             tv.BorderWidth = 0;
             tv.Selection.Mode = Gtk.SelectionMode.Multiple;
@@ -236,9 +236,9 @@ namespace Smuxi.Frontend.Gnome
             _TopicScrolledWindow.NoShowAll = true;
             _TopicScrolledWindow.SizeRequested += delegate(object o, Gtk.SizeRequestedArgs args) {
                 // predict and set useful topic heigth
-                int lineWidth, lineHeigth;
+                int lineWidth, lineHeight;
                 using (var layout = _TopicTextView.CreatePangoLayout("Test Topic")) {
-                    layout.GetPixelSize(out lineWidth, out lineHeigth);
+                    layout.GetPixelSize(out lineWidth, out lineHeight);
                 }
                 var lineSpacing = _TopicTextView.PixelsAboveLines +
                                   _TopicTextView.PixelsBelowLines;
@@ -253,7 +253,7 @@ namespace Smuxi.Frontend.Gnome
                 }
                 newLines = Math.Min(newLines, 3);
                 var bestSize = new Gtk.Requisition() {
-                    Height = ((lineHeigth + lineSpacing) * newLines) + 2
+                    Height = ((lineHeight + lineSpacing) * newLines) + 4
                 };
                 args.Requisition = bestSize;
             };
@@ -265,6 +265,10 @@ namespace Smuxi.Frontend.Gnome
             ShowAll();
         }
 
+        protected GroupChatView(IntPtr handle) : base(handle)
+        {
+        }
+
         public override void Dispose()
         {
             Trace.Call();
@@ -299,6 +303,7 @@ namespace Smuxi.Frontend.Gnome
 
             GLib.Idle.Add(delegate {
                 TabImage.SetFromStock(Gtk.Stock.Refresh, Gtk.IconSize.Menu);
+                OnStatusChanged(EventArgs.Empty);
                 return false;
             });
 
@@ -528,6 +533,9 @@ namespace Smuxi.Frontend.Gnome
             _PersonTreeView.ModifyFont(ThemeSettings.FontDescription);
             
             string userlist_pos = (string) config["Interface/Notebook/Channel/UserListPosition"];
+            if (userlist_pos == "left") {
+                userlist_pos = "right";
+            }
             if (_PersonTreeViewFrame.IsAncestor(_OutputHPaned)) {
                 _OutputHPaned.Remove(_PersonTreeViewFrame);
             }
diff --git a/src/Frontend-GNOME/Views/Chats/PersonChatView.cs b/src/Frontend-GNOME/Views/Chats/PersonChatView.cs
index c1e2a89..3150007 100644
--- a/src/Frontend-GNOME/Views/Chats/PersonChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/PersonChatView.cs
@@ -30,6 +30,7 @@ using System;
 using System.Collections.Generic;
 using Smuxi.Engine;
 using Smuxi.Common;
+using System.Threading;
 
 namespace Smuxi.Frontend.Gnome
 {
@@ -53,6 +54,23 @@ namespace Smuxi.Frontend.Gnome
             );
         }
 
+        public override void AddMessage(MessageModel msg)
+        {
+            switch (msg.MessageType) {
+                case MessageType.PersonChatPersonChanged:
+                    ThreadPool.QueueUserWorkItem(delegate {
+                        try {
+                            // REMOTING CALL
+                            PersonModel = PersonChatModel.Person;
+                        } catch (Exception ex) {
+                            Frontend.ShowException(ex);
+                        }
+                    });
+                    return;
+            }
+            base.AddMessage(msg);
+        }
+
         public PersonChatView(PersonChatModel chat) : base(chat)
         {
             Trace.Call(chat);
@@ -63,6 +81,10 @@ namespace Smuxi.Frontend.Gnome
             ShowAll();
         }
 
+        protected PersonChatView(IntPtr handle) : base(handle)
+        {
+        }
+
         public override IList<PersonModel> Participants
         {
             get {
@@ -78,6 +100,7 @@ namespace Smuxi.Frontend.Gnome
 
             GLib.Idle.Add(delegate {
                 TabImage.SetFromStock(Gtk.Stock.Refresh, Gtk.IconSize.Menu);
+                OnStatusChanged(EventArgs.Empty);
                 return false;
             });
 
diff --git a/src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs b/src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs
index e6de0fa..0a59dfa 100644
--- a/src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/ProtocolChatView.cs
@@ -137,6 +137,10 @@ namespace Smuxi.Frontend.Gnome
             ShowAll();
         }
 
+        protected ProtocolChatView(IntPtr handle) : base(handle)
+        {
+        }
+
         public override void Sync()
         {
             Trace.Call();
@@ -361,6 +365,7 @@ namespace Smuxi.Frontend.Gnome
             ServerIconPixbuf = new Gdk.Pixbuf(iconPath, 16, 16);
             GLib.Idle.Add(delegate {
                 TabImage.Pixbuf = ServerIconPixbuf;
+                OnStatusChanged(EventArgs.Empty);
                 return false;
             });
         }
diff --git a/src/Frontend-GNOME/Views/Chats/SessionChatView.cs b/src/Frontend-GNOME/Views/Chats/SessionChatView.cs
index 318b035..b6d376c 100644
--- a/src/Frontend-GNOME/Views/Chats/SessionChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/SessionChatView.cs
@@ -60,6 +60,10 @@ namespace Smuxi.Frontend.Gnome
             Add(OutputScrolledWindow);
             ShowAll();
         }
+
+        protected SessionChatView(IntPtr handle) : base(handle)
+        {
+        }
         
         protected override void OnTabButtonPress(object sender, Gtk.ButtonPressEventArgs e)
         {
diff --git a/src/Frontend-GNOME/Views/MenuWidget.cs b/src/Frontend-GNOME/Views/MenuWidget.cs
index e2c6767..16accbf 100644
--- a/src/Frontend-GNOME/Views/MenuWidget.cs
+++ b/src/Frontend-GNOME/Views/MenuWidget.cs
@@ -61,6 +61,12 @@ namespace Smuxi.Frontend.Gnome
             }
         }
 
+        public Gtk.Action OpenLogToolAction {
+            get {
+                return f_OpenLogToolAction;
+            }
+        }
+
         public Gtk.Action CloseChatAction {
             get {
                 return f_CloseChatAction;
@@ -116,13 +122,14 @@ namespace Smuxi.Frontend.Gnome
 
             JoinWidget = new JoinWidget();
             JoinWidget.NoShowAll = true;
-            JoinWidget.Visible = f_MenuToolbar.Visible;
             JoinWidget.Activated += OnJoinWidgetActivated;
 
             var joinToolItem = new Gtk.ToolItem();
             joinToolItem.Add(JoinWidget);
             f_JoinToolbar.Add(joinToolItem);
             f_JoinToolbar.ShowAll();
+            f_JoinToolbar.NoShowAll = true;
+            f_JoinToolbar.Visible = f_MenuToolbar.Visible;
 
             f_ShowMenubarAction.Active = (bool) Frontend.FrontendConfig["ShowMenuBar"];
             f_ShowToolbarAction.Active = (bool) Frontend.FrontendConfig["ShowToolBar"];
@@ -446,7 +453,13 @@ namespace Smuxi.Frontend.Gnome
             Trace.Call(sender, e);
 
             try {
-                MainWindow.Notebook.IsBrowseModeEnabled = !MainWindow.Notebook.IsBrowseModeEnabled;
+                var browseMode = f_BrowseModeAction.Active;
+                MainWindow.Notebook.IsBrowseModeEnabled = browseMode;
+                if (browseMode) {
+                    MainWindow.ChatTreeView.HasFocus = true;
+                } else {
+                    MainWindow.Entry.HasFocus = true;
+                }
             } catch (Exception ex) {
                 Frontend.ShowException(Parent, ex);
             }
@@ -474,7 +487,7 @@ namespace Smuxi.Frontend.Gnome
                 var active = f_ShowToolbarAction.Active;
                 f_MenuToolbar.Visible = active;
                 // also hide/show join bar
-                JoinWidget.Visible = active;
+                f_JoinToolbar.Visible = active;
                 Frontend.FrontendConfig["ShowToolBar"] = active;
                 Frontend.FrontendConfig.Save();
             } catch (Exception ex) {
diff --git a/src/Frontend-GNOME/Views/MessageTextView.cs b/src/Frontend-GNOME/Views/MessageTextView.cs
index 0153870..7c48961 100644
--- a/src/Frontend-GNOME/Views/MessageTextView.cs
+++ b/src/Frontend-GNOME/Views/MessageTextView.cs
@@ -63,7 +63,16 @@ namespace Smuxi.Frontend.Gnome
         public event MessageTextViewMessageAddedEventHandler       MessageAdded;
         public event MessageTextViewMessageHighlightedEventHandler MessageHighlighted;
         public event EventHandler<MessageTextViewPersonClickedEventArgs> PersonClicked;
-        
+
+        public int MarkerlineBufferPosition {
+            get {
+                return _MarkerlineBufferPosition;
+            }
+            set {
+                _MarkerlineBufferPosition = value;
+            }
+        }
+
         public bool ShowTimestamps {
             get {
                 return _ShowTimestamps;
@@ -238,6 +247,11 @@ namespace Smuxi.Frontend.Gnome
         
         public void AddMessage(MessageModel msg, bool addLinebreak)
         {
+            AddMessage(msg, addLinebreak, _ShowTimestamps);
+        }
+
+        public void AddMessage(MessageModel msg, bool addLinebreak, bool showTimestamps)
+        {
 #if MSG_DEBUG
             Trace.Call(msg, addLinebreak);
 #endif
@@ -262,7 +276,7 @@ namespace Smuxi.Frontend.Gnome
                 _MessageTextTagTable.Add(indentTag);
             }
 
-            if (_ShowTimestamps) {
+            if (showTimestamps) {
                 var msgTimeStamp = msg.TimeStamp.ToLocalTime();
                 if (_LastMessage != null) {
                     var lastMsgTimeStamp = _LastMessage.TimeStamp.ToLocalTime();
@@ -425,6 +439,11 @@ namespace Smuxi.Frontend.Gnome
                 // http://projects.qnetp.net/issues/show/185
                 QueueDraw();
             }
+            if (Frontend.IsWindows && _LastMessage == null) {
+                // HACK: workaround rendering issue on Windows where the
+                // first inserted text is not showing up until the next insert
+                QueueDraw();
+            }
 
             if (MessageAdded != null) {
                 MessageAdded(this, new MessageTextViewMessageAddedEventArgs(msg));
diff --git a/src/Frontend-GNOME/Views/ServerWidget.cs b/src/Frontend-GNOME/Views/ServerWidget.cs
index 482720f..a71b9e6 100644
--- a/src/Frontend-GNOME/Views/ServerWidget.cs
+++ b/src/Frontend-GNOME/Views/ServerWidget.cs
@@ -275,10 +275,16 @@ namespace Smuxi.Frontend.Gnome
             }
             switch (f_ProtocolComboBox.ActiveText) {
                 case "IRC":
-                    f_PortSpinButton.Value = useEncryption ? 6697 : 6667;
+                    if (f_PortSpinButton.Value == 6667 ||
+                        f_PortSpinButton.Value == 6697) {
+                        f_PortSpinButton.Value = useEncryption ? 6697 : 6667;
+                    }
                     break;
                 case "JabbR":
-                    f_PortSpinButton.Value = useEncryption ? 443 : 80;
+                    if (f_PortSpinButton.Value == 80 ||
+                        f_PortSpinButton.Value == 443) {
+                        f_PortSpinButton.Value = useEncryption ? 443 : 80;
+                    }
                     break;
             }
         }
@@ -373,6 +379,7 @@ namespace Smuxi.Frontend.Gnome
 
                     f_HostnameEntry.Text = "jabbr.net";
                     f_HostnameEntry.Sensitive = true;
+                    f_PortSpinButton.Value = 443;
                     f_PortSpinButton.Sensitive = true;
                     f_UseEncryptionCheckButton.Active = true;
                     f_NetworkComboBoxEntry.Entry.Text = String.Empty;
diff --git a/src/Frontend-GNOME/smuxi-frontend-gnome.1 b/src/Frontend-GNOME/smuxi-frontend-gnome.1
new file mode 100644
index 0000000..ea3eb2f
--- /dev/null
+++ b/src/Frontend-GNOME/smuxi-frontend-gnome.1
@@ -0,0 +1,42 @@
+.Dd $Mdocdate: September 23 2013 $
+.Dt smuxi-frontend-gnome 1
+.Os
+.Sh NAME
+.Nm smuxi-frontend-gnome
+.Nd GNOME frontend for Smuxi chat client
+.Sh SYNOPSIS
+.Nm smuxi-frontend-gnome
+.Op Fl dh
+.Op Fl e Ar engine
+.Sh DESCRIPTION
+.Nm
+is a GNOME frontend for the Smuxi chat client, powered by the GTK# library. It can operate standalone or attached to a remote Smuxi engine.
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl d , Fl \-debug
+Turn on debugging. Debug logs are sent to
+.Pa $XDG_DATA_HOME/smuxi/smuxi-frontend-gnome.log
+, and older logs are moved to the date of usage.
+.It Fl h , Fl \-help
+Show the arguments Smuxi takes.
+.It Fl e Ar engine , Fl \-engine Ns = Ns Ar engine
+Connect to a remote engine.
+.Sh FILES
+.Bl -tag -width -compact
+.It Pa $XDG_DATA_HOME/smuxi/share/smuxi-frontend-gnome.log
+smuxi debug log
+.It Pa $XDG_CONFIG_HOME/smuxi/smuxi-engine.ini
+smuxi local engine config
+.It Pa $XDG_CONFIG_HOME/smuxi/smuxi-frontend.ini
+smuxi frontend configuration and remote engine list
+.Sh SEE ALSO
+.Xr smuxi-frontend-stfl 1 ,
+.Xr smuxi-server 1 ,
+.Xr smuxi-message-buffer 1
+.Pp
+Website: http://smuxi.im
+.Sh AUTHOR/CREDITS
+Smuxi, including this frontend, was written by Mirco Bauer. Contributions to this frontend were also made by George Karavasilev and Oliver Schneider.
+.Pp
+This manpage was written by Calvin Buckley.
diff --git a/src/Frontend-GNOME/smuxi-frontend-gnome.desktop b/src/Frontend-GNOME/smuxi-frontend-gnome.desktop
index 2303dfd..4f0fee4 100644
--- a/src/Frontend-GNOME/smuxi-frontend-gnome.desktop
+++ b/src/Frontend-GNOME/smuxi-frontend-gnome.desktop
@@ -4,19 +4,22 @@ Name=Smuxi
 Name[cs]=Smuxi
 Name[da]=Smuxi
 Name[de]=Smuxi
+Name[es]=Smuxi
 Name[fi]=Smuxi
 Name[fr]=Smuxi
 Name[hr]=Smuxi
 Name[pt]=Smuxi
 Name[pt_BR]=Smuxi
 Name[sv]=Smuxi
+Name[te]=స్మక్సి
+Name[tr]=Smuxi
 Name[zh_CN]=Smuxi
 GenericName=IRC Chat
 GenericName[ca]=_Xat a l'IRC
 GenericName[cs]=IRC Chat
 GenericName[da]=IRC-snak
 GenericName[de]=IRC Chat
-GenericName[es]=IRC Chat
+GenericName[es]=Chat IRC
 GenericName[fi]=IRC-keskustelu
 GenericName[fr]=Chat IRC
 GenericName[hr]=IRC Chat
@@ -40,6 +43,7 @@ X-GNOME-FullName[pt]=Cliente de IRC Smuxi
 X-GNOME-FullName[pt_BR]=Smuxi Cliente IRC
 X-GNOME-FullName[ru]=IRC-клиент Smuxi
 X-GNOME-FullName[sv]=Smuxi IRC-klient
+X-GNOME-FullName[tr]=Smuxi IRC İstemci
 X-GNOME-FullName[zh_CN]=Smuxi IRC 客户端
 Comment=Chat with other people on IRC
 Comment[ca]=Xategeu amb altres persones a l'IRC
diff --git a/src/Frontend-STFL/Makefile.am b/src/Frontend-STFL/Makefile.am
index 86ccc3a..ea0bde7 100644
--- a/src/Frontend-STFL/Makefile.am
+++ b/src/Frontend-STFL/Makefile.am
@@ -1,6 +1,7 @@
 SUBDIRS = STFL
 
-EXTRA_DIST =  
+EXTRA_DIST = $(man_MANS)
+man_MANS = smuxi-frontend-stfl.1 
 
 ASSEMBLY_CONFIG_SOURCE = smuxi-frontend-stfl.exe.config
 ASSEMBLY_CONFIG = $(BUILD_DIR)/smuxi-frontend-stfl.exe.config
diff --git a/src/Frontend-STFL/Makefile.in b/src/Frontend-STFL/Makefile.in
index d060925..2473587 100644
--- a/src/Frontend-STFL/Makefile.in
+++ b/src/Frontend-STFL/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -124,6 +124,7 @@ am__uninstall_files_from_dir = { \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" \
+	"$(DESTDIR)$(man1dir)" \
 	"$(DESTDIR)$(linuxdesktopapplicationsdir)" \
 	"$(DESTDIR)$(linuxpkgconfigdir)" \
 	"$(DESTDIR)$(programfilesdir)" \
@@ -156,6 +157,9 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
 DATA = $(linuxdesktopapplications_DATA) $(linuxpkgconfig_DATA) \
 	$(programfiles_DATA) $(programfilesicons_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
@@ -263,6 +267,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -432,9 +437,10 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 twitter_api_key = @twitter_api_key@
 SUBDIRS = STFL
-EXTRA_DIST = $(build_sources) $(build_resx_files) \
+EXTRA_DIST = $(man_MANS) $(build_sources) $(build_resx_files) \
 	$(build_others_files) $(ASSEMBLY_WRAPPER_IN) $(EXTRAS) \
 	$(DATA_FILES) $(build_culture_res_files)
+man_MANS = smuxi-frontend-stfl.1 
 ASSEMBLY_CONFIG_SOURCE = smuxi-frontend-stfl.exe.config
 ASSEMBLY_CONFIG = $(BUILD_DIR)/smuxi-frontend-stfl.exe.config
 ASSEMBLY = $(BUILD_DIR)/smuxi-frontend-stfl.exe
@@ -680,6 +686,49 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
+install-man1: $(man_MANS)
+	@$(NORMAL_INSTALL)
+	@list1=''; \
+	list2='$(man_MANS)'; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 install-linuxdesktopapplicationsDATA: $(linuxdesktopapplications_DATA)
 	@$(NORMAL_INSTALL)
 	@list='$(linuxdesktopapplications_DATA)'; test -n "$(linuxdesktopapplicationsdir)" || list=; \
@@ -921,10 +970,10 @@ distdir: $(DISTFILES)
 	done
 check-am: all-am
 check: check-recursive
-all-am: Makefile $(SCRIPTS) $(DATA)
+all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" "$(DESTDIR)$(linuxdesktopapplicationsdir)" "$(DESTDIR)$(linuxpkgconfigdir)" "$(DESTDIR)$(programfilesdir)" "$(DESTDIR)$(programfilesiconsdir)"; do \
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(linuxdesktopapplicationsdir)" "$(DESTDIR)$(linuxpkgconfigdir)" "$(DESTDIR)$(programfilesdir)" "$(DESTDIR)$(programfilesiconsdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-recursive
@@ -980,7 +1029,7 @@ info: info-recursive
 info-am:
 
 install-data-am: install-linuxdesktopapplicationsDATA \
-	install-linuxpkgconfigDATA install-pkgappSCRIPTS \
+	install-linuxpkgconfigDATA install-man install-pkgappSCRIPTS \
 	install-programfilesDATA install-programfilesiconsDATA
 
 install-dvi: install-dvi-recursive
@@ -997,7 +1046,7 @@ install-info: install-info-recursive
 
 install-info-am:
 
-install-man:
+install-man: install-man1
 
 install-pdf: install-pdf-recursive
 
@@ -1027,8 +1076,11 @@ ps-am:
 
 uninstall-am: uninstall-binSCRIPTS \
 	uninstall-linuxdesktopapplicationsDATA \
-	uninstall-linuxpkgconfigDATA uninstall-pkgappSCRIPTS \
-	uninstall-programfilesDATA uninstall-programfilesiconsDATA
+	uninstall-linuxpkgconfigDATA uninstall-man \
+	uninstall-pkgappSCRIPTS uninstall-programfilesDATA \
+	uninstall-programfilesiconsDATA
+
+uninstall-man: uninstall-man1
 
 .MAKE: $(am__recursive_targets) install-am install-strip
 
@@ -1040,16 +1092,18 @@ uninstall-am: uninstall-binSCRIPTS \
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-html install-html-am install-info \
 	install-info-am install-linuxdesktopapplicationsDATA \
-	install-linuxpkgconfigDATA install-man install-pdf \
-	install-pdf-am install-pkgappSCRIPTS install-programfilesDATA \
-	install-programfilesiconsDATA install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-binSCRIPTS uninstall-linuxdesktopapplicationsDATA \
-	uninstall-linuxpkgconfigDATA uninstall-pkgappSCRIPTS \
-	uninstall-programfilesDATA uninstall-programfilesiconsDATA
+	install-linuxpkgconfigDATA install-man install-man1 \
+	install-pdf install-pdf-am install-pkgappSCRIPTS \
+	install-programfilesDATA install-programfilesiconsDATA \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-binSCRIPTS \
+	uninstall-linuxdesktopapplicationsDATA \
+	uninstall-linuxpkgconfigDATA uninstall-man uninstall-man1 \
+	uninstall-pkgappSCRIPTS uninstall-programfilesDATA \
+	uninstall-programfilesiconsDATA
 
 
 all: $(ASSEMBLY) $(PROGRAMFILES) $(BINARIES) 
diff --git a/src/Frontend-STFL/STFL/Form.cs b/src/Frontend-STFL/STFL/Form.cs
index fe0c60a..34f8002 100644
--- a/src/Frontend-STFL/STFL/Form.cs
+++ b/src/Frontend-STFL/STFL/Form.cs
@@ -111,6 +111,11 @@ namespace Stfl
         {
             CheckDisposed();
             string @event = StflApi.stfl_run(f_Handle, timeout);
+            if (timeout == -3) {
+                // HACK: timeout of -3 should never return an event but
+                // sometimes does which causes event duplication
+                return;
+            }
             ProcessEvent(@event);
         }
 
diff --git a/src/Frontend-STFL/STFL/Makefile.in b/src/Frontend-STFL/STFL/Makefile.in
index da75682..33d3959 100644
--- a/src/Frontend-STFL/STFL/Makefile.in
+++ b/src/Frontend-STFL/STFL/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -163,6 +163,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Frontend-STFL/STFL/TextView.cs b/src/Frontend-STFL/STFL/TextView.cs
index c33b5be..4fda333 100644
--- a/src/Frontend-STFL/STFL/TextView.cs
+++ b/src/Frontend-STFL/STFL/TextView.cs
@@ -147,13 +147,21 @@ namespace Stfl
         protected void Scroll(double scrollFactor)
         {
             int currentOffset = Offset;
-            int newOffset = (int) (currentOffset + (Heigth * scrollFactor));
-            if (newOffset < 0) {
-                newOffset = 0;
-            } else if (newOffset > OffsetEnd) {
-                newOffset = OffsetEnd;
+            try {
+                int newOffset = (int) (currentOffset + (Heigth * scrollFactor));
+                if (newOffset < 0) {
+                    newOffset = 0;
+                } else if (newOffset > OffsetEnd) {
+                    newOffset = OffsetEnd;
+                }
+                Offset = newOffset;
+            } catch (FormatException ex) {
+#if LOG4NET
+                Logger.ErrorFormat(
+                    "Scroll({0}): FormatException, ignoring...", ex
+                );
+#endif
             }
-            Offset = newOffset;
         }
 
         public void ScrollToStart()
diff --git a/src/Frontend-STFL/STFL/Widget.cs b/src/Frontend-STFL/STFL/Widget.cs
index d0a114c..18478d2 100644
--- a/src/Frontend-STFL/STFL/Widget.cs
+++ b/src/Frontend-STFL/STFL/Widget.cs
@@ -36,7 +36,19 @@ namespace Stfl
                 if (variableName == null) {
                     variableName = String.Format("{0}:h", WidgetName);
                 }
-                return Int32.Parse(Form[variableName]);
+                var value = Form[variableName];
+                try {
+                    return Int32.Parse(value);
+                } catch (FormatException ex) {
+                    throw new FormatException(
+                        String.Format(
+                            "Failed to parse Widget.Heigth: '{0}' as number " +
+                            "(HeigthVariableName: '{1}').",
+                            value, variableName
+                        ),
+                        ex
+                    );
+                }
             }
         }
 
@@ -47,7 +59,19 @@ namespace Stfl
                 if (variableName == null) {
                     variableName = String.Format("{0}:w", WidgetName);
                 }
-                return Int32.Parse(Form[variableName]);
+                var value = Form[variableName];
+                try {
+                    return Int32.Parse(value);
+                } catch (FormatException ex) {
+                    throw new FormatException(
+                        String.Format(
+                            "Failed to parse Widget.Width: '{0}' as number " +
+                            "(WidthVariableName: '{1}').",
+                            value, variableName
+                        ),
+                        ex
+                    );
+                }
             }
         }
 
diff --git a/src/Frontend-STFL/smuxi-frontend-stfl.1 b/src/Frontend-STFL/smuxi-frontend-stfl.1
new file mode 100644
index 0000000..7f0cdae
--- /dev/null
+++ b/src/Frontend-STFL/smuxi-frontend-stfl.1
@@ -0,0 +1,89 @@
+.Dd $Mdocdate: September 24 2013 $
+.Dt smuxi-frontend-stfl 1
+.Os
+.Sh NAME
+.Nm smuxi-frontend-stfl
+.Nd terminal frontend for Smuxi chat client
+.Sh SYNOPSIS
+.Nm smuxi-frontend-stfl
+.Op Fl dlh
+.Op Fl e Ar engine
+.Sh DESCRIPTION
+.Nm
+is a terminal frontend for the Smuxi chat client, powered by the STFL library. It can operate standalone or attached to a remote Smuxi engine.
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl d , Fl \-debug
+Turn on debugging. Debug logs are sent to
+.Pa $XDG_DATA_HOME/smuxi/smuxi-frontend-stfl.log
+, and older logs are moved to the date of usage.
+.It Fl h , Fl \-help
+Show the arguments Smuxi takes.
+.It Fl l , Fl \-list
+List the available engines Smuxi can connect to.
+.It Fl e Ar engine , Fl \-engine Ns = Ns Ar engine
+Connect to a remote engine.
+.Sh KEY BINDINGS
+The keyboards are similar to that of irssi and similar clients. Note that some terminal control characters (like C-c, C-z, etc) are not intercepted. Common line editing keys that work in graphical applications will also work. In the following examples, C-x means Control-x.
+.Pp
+.Bl -tag -width xxxxxxxxxxxxxxx -offset indent -compact 
+.It Tab
+complete nickname
+.It PageUp
+move up the scrollback
+.It PageDown
+move down the scrollback
+.It C-p , C-PageUp
+previous window
+.It C-n , C-PageDown
+next window
+.It C-Left
+jump to the previous word
+.It C-Right
+jump to the next word
+.It C-w
+delete word
+.It C-c
+non-graceful exit
+.Sh SMUXI COMMANDS
+Like most IRC clients, Smuxi uses commands prefixed with "/", and most use the same commands, also including its own set of commands for the client and engine. In the following examples, the "/" prefix is not included.
+.Bl -tag -width xx -offset -ident
+.It exit
+Exit the Smuxi frontend gracefully.
+.It window close
+Closes the current window.
+.It window Ar number
+Goes to the window with that number.
+.It connect Ar protocol Ar protocol-parameters
+Connects to the server with the given protocol.
+.It connect Ar network
+Connects to the preset network.
+.It disconnect Ar server
+Disconnects from server. If no parameter is passed, then the server associated with the current window will be disconnected.
+.It config list
+Lists the configuration options.
+.It config get Ar key
+Get the configuration key's value.
+.It config set Ar key Ns = Ns Ar value
+Set the configuration key's value.
+.It shutdown
+Shuts down the current engine.
+.Sh FILES
+.Bl -tag -width -compact
+.It Pa $XDG_DATA_HOME/smuxi/share/smuxi-frontend-stfl.log
+smuxi debug log
+.It Pa $XDG_CONFIG_HOME/smuxi/smuxi-engine.ini
+smuxi local engine config
+.It Pa $XDG_CONFIG_HOME/smuxi/smuxi-frontend.ini
+smuxi frontend configuration and remote engine list
+.Sh SEE ALSO
+.Xr smuxi-frontend-gnome 1 ,
+.Xr smuxi-server 1 ,
+.Xr smuxi-message-buffer 1
+.Pp
+Website: http://smuxi.im
+.Sh AUTHOR/CREDITS
+Smuxi, including this frontend, was written by Mirco Bauer. Contributions to this frontend were also made by Ondřej Hošek and Andrius Bentkus.
+.Pp
+This manpage was written by Calvin Buckley.
diff --git a/src/Frontend-STFL/smuxi-frontend-stfl.in b/src/Frontend-STFL/smuxi-frontend-stfl.in
index 1b4140b..bb7e0a1 100644
--- a/src/Frontend-STFL/smuxi-frontend-stfl.in
+++ b/src/Frontend-STFL/smuxi-frontend-stfl.in
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec mono "@expanded_libdir@/@PACKAGE@/smuxi-frontend-stfl.exe" "$@"
+exec mono --debug "@expanded_libdir@/@PACKAGE@/smuxi-frontend-stfl.exe" "$@"
diff --git a/src/Frontend-SWF/Frontend.cs b/src/Frontend-SWF/Frontend.cs
index 4678bae..218de2c 100644
--- a/src/Frontend-SWF/Frontend.cs
+++ b/src/Frontend-SWF/Frontend.cs
@@ -46,7 +46,6 @@ namespace Smuxi.Frontend.Swf
         private static string             _VersionNumber;
         private static string             _VersionString;
         private static Version            _EngineVersion;
-        private static SplashScreenWindow _SplashScreenWindow;
         private static MainWindow         _MainWindow;
         private static FrontendConfig     _FrontendConfig;
         private static Session            _Session;
@@ -151,8 +150,6 @@ namespace Smuxi.Frontend.Swf
             // called before any form is displayed.
             Application.EnableVisualStyles();
 
-            _SplashScreenWindow = new SplashScreenWindow();
-            
             _MainWindow = new MainWindow();
             // HACK: force creation of window handle, else the engine will have problems adding stuff
             IntPtr handle = _MainWindow.Handle;
@@ -175,9 +172,6 @@ namespace Smuxi.Frontend.Swf
                     InitLocalEngine();
                 }
             }
-            // TODO: Kill the SplashScreen Window
-            _SplashScreenWindow.Close();
-            
              /*TODO: Set the main message loop*/
             Application.Run(_MainWindow);
 #if LOG4NET
diff --git a/src/Frontend-SWF/Makefile.am b/src/Frontend-SWF/Makefile.am
index 8d7f124..9c8d60d 100644
--- a/src/Frontend-SWF/Makefile.am
+++ b/src/Frontend-SWF/Makefile.am
@@ -70,8 +70,6 @@ BINARIES = \
 all: $(ASSEMBLY) $(PROGRAMFILES) $(BINARIES) 
 
 FILES = \
-	SplashScreenWindow.cs \
-	SplashScreenWindow.designer.cs \
 	NotImplementedMessageDialog.cs \
 	$(top_srcdir)/src/AssemblyVersion.cs \
 	AssemblyInfo.cs \
diff --git a/src/Frontend-SWF/Makefile.in b/src/Frontend-SWF/Makefile.in
index 423908f..1c8f2ee 100644
--- a/src/Frontend-SWF/Makefile.in
+++ b/src/Frontend-SWF/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -202,6 +202,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -428,8 +429,6 @@ BINARIES = \
 	$(FRONTEND_SWF)  
 
 FILES = \
-	SplashScreenWindow.cs \
-	SplashScreenWindow.designer.cs \
 	NotImplementedMessageDialog.cs \
 	$(top_srcdir)/src/AssemblyVersion.cs \
 	AssemblyInfo.cs \
diff --git a/src/Frontend-SWF/SplashScreenWindow.cs b/src/Frontend-SWF/SplashScreenWindow.cs
deleted file mode 100644
index fdc5ed5..0000000
--- a/src/Frontend-SWF/SplashScreenWindow.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * $Id: SplashScreenWindow.cs 122 2006-04-26 19:31:42Z meebey $
- * $URL: svn+ssh://SmuxiSVN/svn/smuxi/smuxi/trunk/src/Frontend-GNOME/SplashScreenWindow.cs $
- * $Rev: 122 $
- * $Author: meebey $
- * $Date: 2006-04-26 14:31:42 -0500 (Wed, 26 Apr 2006) $
- *
- * Smuxi - Smart MUltipleXed Irc
- *
- * Copyright (c) 2005-2006 Mirco Bauer <meebey at meebey.net>
- *
- * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-using System;
-using System.Reflection;
-using System.Windows.Forms;
-using System.Drawing;
-
-namespace Smuxi.Frontend.Swf
-{
-    public partial class SplashScreenWindow : Form
-    {
-        public SplashScreenWindow() 
-        {
-            Image img = new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("splashscreen.png"));
-            InitializeComponent();
-            BackgroundImage = img;
-            Size = img.Size;
-        }
-    }
-}
diff --git a/src/Frontend-SWF/SplashScreenWindow.designer.cs b/src/Frontend-SWF/SplashScreenWindow.designer.cs
deleted file mode 100644
index a750589..0000000
--- a/src/Frontend-SWF/SplashScreenWindow.designer.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Smuxi.Frontend.Swf
-{
-    public partial class SplashScreenWindow
-    {
-        private void InitializeComponent()
-        {
-            this.SuspendLayout();
-            // 
-            // SplashScreenWindow
-            // 
-            this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
-            this.Name = "SplashScreenWindow";
-            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
-            this.ResumeLayout(false);
-        }
-    }
-}
diff --git a/src/Frontend-Test/Makefile.in b/src/Frontend-Test/Makefile.in
index e5a645a..65375dc 100644
--- a/src/Frontend-Test/Makefile.in
+++ b/src/Frontend-Test/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -202,6 +202,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
diff --git a/src/Frontend/ChatViewInfoAttribute.cs b/src/Frontend/ChatViewInfoAttribute.cs
index c852d77..fa202f7 100644
--- a/src/Frontend/ChatViewInfoAttribute.cs
+++ b/src/Frontend/ChatViewInfoAttribute.cs
@@ -27,8 +27,9 @@
  */
 
 using System;
+using Smuxi.Engine;
 
-namespace Smuxi.Engine
+namespace Smuxi.Frontend
 {
     [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
     public class ChatViewInfoAttribute : Attribute
diff --git a/src/Frontend/ChatViewManagerBase.cs b/src/Frontend/ChatViewManagerBase.cs
index 3bd5121..c4f4e6c 100644
--- a/src/Frontend/ChatViewManagerBase.cs
+++ b/src/Frontend/ChatViewManagerBase.cs
@@ -1,13 +1,7 @@
 /*
- * $Id: AboutDialog.cs 122 2006-04-26 19:31:42Z meebey $
- * $URL: svn+ssh://svn.qnetp.net/svn/smuxi/smuxi/trunk/src/Frontend-GNOME/AboutDialog.cs $
- * $Rev: 122 $
- * $Author: meebey $
- * $Date: 2006-04-26 21:31:42 +0200 (Wed, 26 Apr 2006) $
- *
  * Smuxi - Smart MUltipleXed Irc
  *
- * Copyright (c) 2005-2007 Mirco Bauer <meebey at meebey.net>
+ * Copyright (c) 2005-2007, 2010-2013 Mirco Bauer <meebey at meebey.net>
  *
  * Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
  *
@@ -57,12 +51,25 @@ namespace Smuxi.Frontend
         
         private Type _GetChatViewType(ChatType chatType, Type protocolManagerType)
         {
-            foreach (ChatViewInfoAttribute info in _ChatViewTypes.Keys) {
+            // exact or any (null) match
+            foreach (var info in _ChatViewTypes.Keys) {
                 if (info.ChatType == chatType &&
                     info.ProtocolManagerType == protocolManagerType) {
                     return _ChatViewTypes[info];
                 }
             }
+            if (protocolManagerType != null) {
+                // subclass only match
+                foreach (var info in _ChatViewTypes.Keys) {
+                    if (info.ProtocolManagerType == null) {
+                        continue;
+                    }
+                    if (info.ChatType == chatType &&
+                        protocolManagerType.IsSubclassOf(info.ProtocolManagerType)) {
+                        return _ChatViewTypes[info];
+                    }
+                }
+            }
             return null;
         }
 
diff --git a/src/Frontend/CommandManager.cs b/src/Frontend/CommandManager.cs
index 3356d98..397db86 100644
--- a/src/Frontend/CommandManager.cs
+++ b/src/Frontend/CommandManager.cs
@@ -20,6 +20,7 @@
 
 using System;
 using System.Linq;
+using System.Reflection;
 using System.Collections.Generic;
 using SysDiag = System.Diagnostics;
 using Smuxi.Common;
@@ -46,6 +47,7 @@ namespace Smuxi.Frontend
         static readonly log4net.ILog f_Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 #endif
         static readonly string f_LibraryTextDomain = "smuxi-frontend";
+        static string FrontendVersion { get; set; }
         Session         f_Session;
         TaskQueue       f_TaskQueue;
         TimeSpan        f_LastCommandTimeSpan;
@@ -58,6 +60,13 @@ namespace Smuxi.Frontend
 
         public event CommandExceptionEventHandler ExceptionEvent;
 
+        static CommandManager()
+        {
+            var asm = Assembly.GetAssembly(typeof(CommandManager));
+            var asm_name = asm.GetName(false);
+            FrontendVersion = asm_name.Version.ToString();
+        }
+
         public CommandManager(Session session)
         {
             if (session == null) {
@@ -134,8 +143,8 @@ namespace Smuxi.Frontend
             start = DateTime.UtcNow;
 
             handled = f_Session.Command(cmd);
+            IProtocolManager pm = null;
             if (!handled) {
-                IProtocolManager pm;
                 if (cmd.Chat is SessionChatModel) {
                     pm = cmd.FrontendManager.CurrentProtocolManager;
                 } else {
@@ -150,6 +159,29 @@ namespace Smuxi.Frontend
                 }
             }
             if (!handled) {
+                var filteredCmd = IOSecurity.GetFilteredPath(cmd.Command);
+                var hooks = new HookRunner("frontend", "command-manager",
+                                           "command-" + filteredCmd);
+                hooks.EnvironmentVariables.Add("FRONTEND_VERSION", FrontendVersion);
+                hooks.Environments.Add(new ChatHookEnvironment(cmd.Chat));
+                if (pm != null) {
+                    hooks.Environments.Add(new ProtocolManagerHookEnvironment(pm));
+                }
+
+                var cmdChar = (string) f_Session.UserConfig["Interface/Entry/CommandCharacter"];
+                hooks.Commands.Add(new SessionHookCommand(f_Session, cmd.Chat, cmdChar));
+                if (pm != null) {
+                    hooks.Commands.Add(new ProtocolManagerHookCommand(pm, cmd.Chat, cmdChar));
+                }
+
+                // show time
+                hooks.Init();
+                if (hooks.HasHooks) {
+                    hooks.Run();
+                    handled = true;
+                }
+            }
+            if (!handled) {
                Unknown(cmd);
             }
 
@@ -203,7 +235,7 @@ namespace Smuxi.Frontend
                                              cmd.CommandCharacter, output));
                 } else {
                     var msg = new MessageBuilder().AppendText(output).ToMessage();
-                    cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+                    f_Session.AddMessageToFrontend(cmd, msg);
                 }
             };
 
@@ -250,7 +282,7 @@ namespace Smuxi.Frontend
                         AppendErrorText("Executing '{0}' failed with: {1}",
                                         command, ex.Message).
                         ToMessage();
-                    cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+                    f_Session.AddMessageToFrontend(cmd, msg);
                 }
             }
         }
@@ -263,7 +295,7 @@ namespace Smuxi.Frontend
                 AppendEventPrefix().
                     AppendText(cmd.Parameter).
                     ToMessage();
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+            f_Session.AddMessageToFrontend(cmd, msg);
         }
 
         public void CommandGenerateMessages(CommandModel cmd, IChatView chat)
@@ -310,7 +342,7 @@ namespace Smuxi.Frontend
                 AppendEventPrefix().
                 AppendText(_("Unknown Command: {0}"), cmd.Command).
                 ToMessage();
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+            f_Session.AddMessageToFrontend(cmd, msg);
         }
 
         void NotEnoughParameters(CommandModel cmd)
@@ -319,7 +351,7 @@ namespace Smuxi.Frontend
                 AppendEventPrefix().
                 AppendText(_("Not enough parameters for {0} command"), cmd.Command).
                 ToMessage();
-            cmd.FrontendManager.AddMessageToChat(cmd.Chat, msg);
+            f_Session.AddMessageToFrontend(cmd, msg);
         }
 
         MessageBuilder CreateMessageBuilder()
diff --git a/src/Frontend/EntryController.cs b/src/Frontend/EntryController.cs
deleted file mode 100644
index 526b61d..0000000
--- a/src/Frontend/EntryController.cs
+++ /dev/null
@@ -1 +0,0 @@
-// created on 04/15/2007 at 18:05
\ No newline at end of file
diff --git a/src/Frontend/EntryHistoryModel.cs b/src/Frontend/EntryHistoryModel.cs
deleted file mode 100644
index 526b61d..0000000
--- a/src/Frontend/EntryHistoryModel.cs
+++ /dev/null
@@ -1 +0,0 @@
-// created on 04/15/2007 at 18:05
\ No newline at end of file
diff --git a/src/Frontend/Makefile.am b/src/Frontend/Makefile.am
index 42cb703..96775e3 100644
--- a/src/Frontend/Makefile.am
+++ b/src/Frontend/Makefile.am
@@ -61,8 +61,6 @@ all: $(ASSEMBLY) $(PROGRAMFILES) $(LINUX_PKGCONFIG)
 FILES = \
 	$(top_srcdir)/src/AssemblyVersion.cs \
 	AssemblyInfo.cs \
-	EntryController.cs \
-	EntryHistoryModel.cs \
 	ChatViewManagerBase.cs \
 	ChatViewSyncManager.cs \
 	IChatView.cs \
diff --git a/src/Frontend/Makefile.in b/src/Frontend/Makefile.in
index c37a207..c1eda15 100644
--- a/src/Frontend/Makefile.in
+++ b/src/Frontend/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -201,6 +201,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -418,8 +419,6 @@ LINUX_PKGCONFIG = \
 FILES = \
 	$(top_srcdir)/src/AssemblyVersion.cs \
 	AssemblyInfo.cs \
-	EntryController.cs \
-	EntryHistoryModel.cs \
 	ChatViewManagerBase.cs \
 	ChatViewSyncManager.cs \
 	IChatView.cs \
diff --git a/src/Frontend/SshTunnelManager.cs b/src/Frontend/SshTunnelManager.cs
index 5796b57..e082def 100644
--- a/src/Frontend/SshTunnelManager.cs
+++ b/src/Frontend/SshTunnelManager.cs
@@ -400,6 +400,8 @@ namespace Smuxi.Frontend
             } else {
                 haystack = output;
             }
+            // OpenSSH_6.2p2 Debian-6, OpenSSL 1.0.1e 11 Feb 2013
+            // OpenSSH_6.2, OpenSSL 1.0.1c 10 May 2012
             Match match = Regex.Match(haystack, @"OpenSSH[_\w](\d+).(\d+)(?:.(\d+))?");
             if (match.Success) {
                 string major, minor, micro;
@@ -413,6 +415,7 @@ namespace Smuxi.Frontend
                     micro = match.Groups[3].Value;
                     version = String.Format("{0}.{1}", version, micro);
                 }
+                version = version.TrimEnd('.');
 #if LOG4NET
                 f_Logger.Debug("GetOpenSshVersion(): found version: " + version);
 #endif
diff --git a/src/Makefile.am b/src/Makefile.am
index 5da17b8..5d2e0ab 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -28,6 +28,10 @@ if ENABLE_FRONTEND_GNOME_IRC
 FRONTEND_GNOME_IRC = Frontend-GNOME-IRC
 endif
 
+if ENABLE_FRONTEND_GNOME_TWITTER
+FRONTEND_GNOME_TWITTER = Frontend-GNOME-Twitter
+endif
+
 if ENABLE_FRONTEND_GNOME_XMPP
 FRONTEND_GNOME_XMPP = Frontend-GNOME-XMPP
 endif
@@ -63,6 +67,7 @@ SUBDIRS =	Common \
 		Frontend \
 		$(FRONTEND_GNOME) \
 		$(FRONTEND_GNOME_IRC) \
+		$(FRONTEND_GNOME_TWITTER) \
 		$(FRONTEND_GNOME_XMPP) \
 		$(FRONTEND_STFL) \
 		$(FRONTEND_CURSES) \
diff --git a/src/Makefile.in b/src/Makefile.in
index b0658d9..fc7b7aa 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -149,8 +149,8 @@ ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = Common Engine Engine-IRC Engine-Twitter Engine-Campfire \
 	Engine-JabbR Engine-XMPP Server Frontend Frontend-GNOME \
-	Frontend-GNOME-IRC Frontend-GNOME-XMPP Frontend-STFL \
-	Frontend-Curses Frontend-SWF Frontend-Test
+	Frontend-GNOME-IRC Frontend-GNOME-Twitter Frontend-GNOME-XMPP \
+	Frontend-STFL Frontend-Curses Frontend-SWF Frontend-Test
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -228,6 +228,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -407,6 +408,7 @@ twitter_api_key = @twitter_api_key@
 # Frontends
 @ENABLE_FRONTEND_GNOME_TRUE at FRONTEND_GNOME = Frontend-GNOME
 @ENABLE_FRONTEND_GNOME_IRC_TRUE at FRONTEND_GNOME_IRC = Frontend-GNOME-IRC
+ at ENABLE_FRONTEND_GNOME_TWITTER_TRUE@FRONTEND_GNOME_TWITTER = Frontend-GNOME-Twitter
 @ENABLE_FRONTEND_GNOME_XMPP_TRUE at FRONTEND_GNOME_XMPP = Frontend-GNOME-XMPP
 @ENABLE_FRONTEND_STFL_TRUE at FRONTEND_STFL = Frontend-STFL
 @ENABLE_FRONTEND_CURSES_TRUE at FRONTEND_CURSES = Frontend-Curses
@@ -425,6 +427,7 @@ SUBDIRS = Common \
 		Frontend \
 		$(FRONTEND_GNOME) \
 		$(FRONTEND_GNOME_IRC) \
+		$(FRONTEND_GNOME_TWITTER) \
 		$(FRONTEND_GNOME_XMPP) \
 		$(FRONTEND_STFL) \
 		$(FRONTEND_CURSES) \
diff --git a/src/Server/Makefile.am b/src/Server/Makefile.am
index 359f817..4b0091e 100644
--- a/src/Server/Makefile.am
+++ b/src/Server/Makefile.am
@@ -1,5 +1,6 @@
 
-EXTRA_DIST =  
+EXTRA_DIST = $(man_MANS) 
+man_MANS = smuxi-server.1
 
 SERVER_EXE_CONFIG_SOURCE = smuxi-server.exe.config
 SERVER_EXE_CONFIG = $(BUILD_DIR)/smuxi-server.exe.config
@@ -81,7 +82,8 @@ EXTRAS = \
 
 REFERENCES =  \
 	System.Runtime.Remoting \
-	System
+	System \
+	Mono.Posix
 
 DLL_REFERENCES = 
 
diff --git a/src/Server/Makefile.in b/src/Server/Makefile.in
index 50bc673..b19d708 100644
--- a/src/Server/Makefile.in
+++ b/src/Server/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -124,6 +124,7 @@ am__uninstall_files_from_dir = { \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" \
+	"$(DESTDIR)$(man1dir)" \
 	"$(DESTDIR)$(linuxdesktopapplicationsdir)" \
 	"$(DESTDIR)$(linuxpkgconfigdir)" \
 	"$(DESTDIR)$(programfilesdir)" \
@@ -148,6 +149,9 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
 DATA = $(linuxdesktopapplications_DATA) $(linuxpkgconfig_DATA) \
 	$(programfiles_DATA) $(programfilesicons_DATA)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
@@ -203,6 +207,7 @@ GETTEXT_PACKAGE_FRONTEND = @GETTEXT_PACKAGE_FRONTEND@
 GETTEXT_PACKAGE_FRONTEND_CURSES = @GETTEXT_PACKAGE_FRONTEND_CURSES@
 GETTEXT_PACKAGE_FRONTEND_GNOME = @GETTEXT_PACKAGE_FRONTEND_GNOME@
 GETTEXT_PACKAGE_FRONTEND_GNOME_IRC = @GETTEXT_PACKAGE_FRONTEND_GNOME_IRC@
+GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER = @GETTEXT_PACKAGE_FRONTEND_GNOME_TWITTER@
 GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP = @GETTEXT_PACKAGE_FRONTEND_GNOME_XMPP@
 GETTEXT_PACKAGE_FRONTEND_STFL = @GETTEXT_PACKAGE_FRONTEND_STFL@
 GETTEXT_PACKAGE_FRONTEND_SWF = @GETTEXT_PACKAGE_FRONTEND_SWF@
@@ -371,9 +376,10 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 twitter_api_key = @twitter_api_key@
-EXTRA_DIST = $(build_sources) $(build_resx_files) \
+EXTRA_DIST = $(man_MANS) $(build_sources) $(build_resx_files) \
 	$(build_others_files) $(ASSEMBLY_WRAPPER_IN) $(EXTRAS) \
 	$(DATA_FILES) $(build_culture_res_files)
+man_MANS = smuxi-server.1
 SERVER_EXE_CONFIG_SOURCE = smuxi-server.exe.config
 SERVER_EXE_CONFIG = $(BUILD_DIR)/smuxi-server.exe.config
 ASSEMBLY_COMPILER_FLAGS = @SERVER_COMPILER_FLAGS@ $(am__append_1) \
@@ -436,7 +442,8 @@ EXTRAS = \
 
 REFERENCES = \
 	System.Runtime.Remoting \
-	System
+	System \
+	Mono.Posix
 
 DLL_REFERENCES = 
 CLEANFILES = $(PROGRAMFILES) $(BINARIES) $(ASSEMBLY) $(ASSEMBLY).mdb \
@@ -609,6 +616,49 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
+install-man1: $(man_MANS)
+	@$(NORMAL_INSTALL)
+	@list1=''; \
+	list2='$(man_MANS)'; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 install-linuxdesktopapplicationsDATA: $(linuxdesktopapplications_DATA)
 	@$(NORMAL_INSTALL)
 	@list='$(linuxdesktopapplications_DATA)'; test -n "$(linuxdesktopapplicationsdir)" || list=; \
@@ -732,9 +782,9 @@ distdir: $(DISTFILES)
 	done
 check-am: all-am
 check: check-am
-all-am: Makefile $(SCRIPTS) $(DATA)
+all-am: Makefile $(SCRIPTS) $(MANS) $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" "$(DESTDIR)$(linuxdesktopapplicationsdir)" "$(DESTDIR)$(linuxpkgconfigdir)" "$(DESTDIR)$(programfilesdir)" "$(DESTDIR)$(programfilesiconsdir)"; do \
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgappdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(linuxdesktopapplicationsdir)" "$(DESTDIR)$(linuxpkgconfigdir)" "$(DESTDIR)$(programfilesdir)" "$(DESTDIR)$(programfilesiconsdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -790,7 +840,7 @@ info: info-am
 info-am:
 
 install-data-am: install-linuxdesktopapplicationsDATA \
-	install-linuxpkgconfigDATA install-pkgappSCRIPTS \
+	install-linuxpkgconfigDATA install-man install-pkgappSCRIPTS \
 	install-programfilesDATA install-programfilesiconsDATA
 
 install-dvi: install-dvi-am
@@ -807,7 +857,7 @@ install-info: install-info-am
 
 install-info-am:
 
-install-man:
+install-man: install-man1
 
 install-pdf: install-pdf-am
 
@@ -837,8 +887,11 @@ ps-am:
 
 uninstall-am: uninstall-binSCRIPTS \
 	uninstall-linuxdesktopapplicationsDATA \
-	uninstall-linuxpkgconfigDATA uninstall-pkgappSCRIPTS \
-	uninstall-programfilesDATA uninstall-programfilesiconsDATA
+	uninstall-linuxpkgconfigDATA uninstall-man \
+	uninstall-pkgappSCRIPTS uninstall-programfilesDATA \
+	uninstall-programfilesiconsDATA
+
+uninstall-man: uninstall-man1
 
 .MAKE: install-am install-strip
 
@@ -849,16 +902,18 @@ uninstall-am: uninstall-binSCRIPTS \
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-html install-html-am install-info \
 	install-info-am install-linuxdesktopapplicationsDATA \
-	install-linuxpkgconfigDATA install-man install-pdf \
-	install-pdf-am install-pkgappSCRIPTS install-programfilesDATA \
-	install-programfilesiconsDATA install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags-am uninstall uninstall-am uninstall-binSCRIPTS \
+	install-linuxpkgconfigDATA install-man install-man1 \
+	install-pdf install-pdf-am install-pkgappSCRIPTS \
+	install-programfilesDATA install-programfilesiconsDATA \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-binSCRIPTS \
 	uninstall-linuxdesktopapplicationsDATA \
-	uninstall-linuxpkgconfigDATA uninstall-pkgappSCRIPTS \
-	uninstall-programfilesDATA uninstall-programfilesiconsDATA
+	uninstall-linuxpkgconfigDATA uninstall-man uninstall-man1 \
+	uninstall-pkgappSCRIPTS uninstall-programfilesDATA \
+	uninstall-programfilesiconsDATA
 
 
 all: $(ASSEMBLY) $(PROGRAMFILES) $(BINARIES) 
diff --git a/src/Server/Server.cs b/src/Server/Server.cs
index da30c00..570ae3b 100644
--- a/src/Server/Server.cs
+++ b/src/Server/Server.cs
@@ -36,6 +36,8 @@ using System.Runtime.Remoting.Channels.Tcp;
 using System.Runtime.Remoting.Channels.Http;
 using System.Runtime.Serialization.Formatters;
 using Smuxi;
+using Mono.Unix;
+using Mono.Unix.Native;
 //using Smuxi.Channels.Tcp;
 #if CHANNEL_TCPEX
 using TcpEx;
@@ -115,7 +117,26 @@ namespace Smuxi.Server
 #if LOG4NET
             _Logger.Info("Spawned remoting server with channel: "+channel+" formatter: "+formatter+" port: "+port);
 #endif            
-            
+            if ((Environment.OSVersion.Platform == PlatformID.Unix) ||
+                (Environment.OSVersion.Platform == PlatformID.MacOSX)) {
+                // Register shutdown handlers   
+#if LOG4NET
+                _Logger.Info("Registering signal handlers");
+#endif
+                UnixSignal[] shutdown_signals = {   
+                    new UnixSignal(Signum.SIGINT),  
+                    new UnixSignal(Signum.SIGTERM), 
+                };  
+                Thread signal_thread = new Thread(() => {
+                    var index = UnixSignal.WaitAny(shutdown_signals);
+#if LOG4NET
+                    _Logger.Info("Caught signal " + shutdown_signals[index].Signum.ToString() + ", shutting down");
+#endif
+                    Engine.Engine.Shutdown();
+                }); 
+                signal_thread.Start();
+            }
+
             Thread.CurrentThread.Join();
 #if LOG4NET
             _Logger.Info("Shutting down remoting server...");
diff --git a/src/Server/smuxi-server.1 b/src/Server/smuxi-server.1
new file mode 100644
index 0000000..5070302
--- /dev/null
+++ b/src/Server/smuxi-server.1
@@ -0,0 +1,58 @@
+.Dd $Mdocdate: September 24 2013 $
+.Dt smuxi-server 1
+.Os
+.Sh NAME
+.Nm smuxi-server
+.Nd remote engine for Smuxi chat client
+.Sh SYNOPSIS
+.Nm smuxi-server
+.Op Fl dh
+.Op Fl \-add-user
+.Op Fl \-modify-user
+.Op Fl \-delete-user
+.Op Fl \-list-users
+.Op Fl \-username Ns = Ns Ar username
+.Op Fl \-password Ns = Ns Ar password
+.Op Fl \-optimize-message-buffers Ns = Ns Ar action
+.Sh DESCRIPTION
+.Nm
+is a remote engine for the Smuxi chat client. Multiple Smuxi frontends can connect and be kept in sync, and when none are connected, keeps track and stays connected to servers.
+.Pp
+Some options are mutually exclusive. When no special options are taken, the server will start normally. The options are as follows:
+.Bl -tag -width Ds
+.It Fl d , Fl \-debug
+Turn on debugging. Debug logs are sent to
+.Pa $XDG_DATA_HOME/smuxi/smuxi-server.log
+, and older logs are moved to the date of usage.
+.It Fl h , Fl \-help
+Show the arguments Smuxi takes.
+.It Fl \-add-user
+Adds a user to the server.
+.It Fl \-delete-user
+Deletes a user from the server.
+.It Fl \-modify-user
+Changes a user's properties.
+.It Fl \-list-users
+Lists the users of the server.
+.It Fl \-username Ns = Ns Ar username
+When adding, deleting, or modifying a user, use that username.
+.It Fl \-password Ns = Ns Ar password
+When adding or modifying a user, use that password.
+.It Fl \-optimize-message-buffers Ns = Ns Ar action
+Optimizes the message buffers. Valid values are none, defrag, index, and all.
+.Sh FILES
+.Bl -tag -width -compact
+.It Pa $XDG_DATA_HOME/smuxi/share/smuxi-server.log
+smuxi debug log
+.It Pa $XDG_CONFIG_HOME/smuxi/smuxi-engine.ini
+smuxi engine config
+.Sh SEE ALSO
+.Xr smuxi-frontend-gnome 1 ,
+.Xr smuxi-frontend-stfl 1 ,
+.Xr smuxi-message-buffer 1
+.Pp
+Website: http://smuxi.im
+.Sh AUTHOR/CREDITS
+Smuxi, including this server, was written by Mirco Bauer.
+.Pp
+This manpage was written by Calvin Buckley.
diff --git a/src/smuxi-win32.nsis.in b/src/smuxi-win32.nsis.in
index d67f522..ca5e46f 100644
--- a/src/smuxi-win32.nsis.in
+++ b/src/smuxi-win32.nsis.in
@@ -2,7 +2,7 @@
 # NSIS install script for Smuxi                                            #
 #                                                                          #
 # Copyright (C) 2009 Sebastian Schnur <ikkerus at ikkerus.net>                #
-# Copyright (C) 2009-2010 Mirco Bauer <meebey at meebey.net>                  #
+# Copyright (C) 2009-2013 Mirco Bauer <meebey at meebey.net>                  #
 #                                                                          #
 # This program is free software; you can redistribute it and/or modify     #
 # it under the terms of the GNU General Public License as published by     #
@@ -35,7 +35,7 @@ SetCompressor lzma
 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
 !define DOTNET_VERSION "4.0"
 !define GTKSHARP_PRODUCT_GUID "{3CB70B01-4BC8-4C0F-B28F-7C6E33F913CC}"
-!define GTKSHARP_VERSION "2.12.20"
+!define GTKSHARP_VERSION "2.12.22"
 
 ############################
 # MUI 1.67 compatible mode #
@@ -131,7 +131,7 @@ FunctionEnd
 !macroend
 
 !macro CheckGtkSharp GTKSHARP_REQ
-    !define GTKSHARP_FILE         "gtk-sharp-2.12.20.win32.msi"
+    !define GTKSHARP_FILE         "gtk-sharp-2.12.22.msi"
     !define GTKSHARP_BASE_URL     "http://www.smuxi.org/jaws/data/files/"
     !define GTKSHARP_DOWNLOAD_URL "${GTKSHARP_BASE_URL}${GTKSHARP_FILE}"
     !define GTKSHARP_TEMP_FILE "$TEMP\${GTKSHARP_FILE}"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-cli-apps/packages/smuxi.git



More information about the Pkg-cli-apps-commits mailing list